【问题标题】:What does the symbol ! in SML mean?什么符号!在 SML 中是什么意思?
【发布时间】:2018-03-27 02:44:37
【问题描述】:

SML中的符号!是什么意思?

fun polysort(_,[]) = []
| polysort(_,[x]) = [x]!
| polysort(less,xs) =
 let
  val (ys, zs) = split xs
   in
   merge(less,polysort(less,ys), polysort(less, zs))
 end;

这是反转还是什么?我认为这与 ref 有关,但我也不明白。

【问题讨论】:

  • 前缀! 运算符似乎是遵从运算符(从ref 中获取值),但我不知道后缀!。 (仅来自快速谷歌搜索)

标签: sml ml ref


【解决方案1】:

通常,! 是一个函数'a ref -> 'a,它是extracts the value from a reference cell。即:

val x  = ref 1;  (* create reference cell *)
val () = x := 2; (* update value in x *)
val y = ! x;      (* extract value from x *)

但是,在这种情况下,它看起来只是一个错字。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-29
    • 2011-04-18
    • 2015-02-13
    • 2012-10-01
    • 2013-06-29
    • 1970-01-01
    • 2011-04-07
    • 2014-05-11
    相关资源
    最近更新 更多