【发布时间】:2011-04-11 10:57:45
【问题描述】:
从 Lisp 转到 OCaml,我发现自己对函数何时返回以及何时不返回感到非常困惑。我想念我的魔法名言!值得庆幸的是,大多数时候,OCaml 似乎会自动知道我何时需要评估函数,何时不需要。但是,我经常发现自己试图在 let 表达式中分配函数的返回值,如下所示。
let start = Sys.time in
(*
* do something here
*)
;
let ending = Sys.time in
Printf.printf "did something in %f seconds\n" (ending -. start)
但随后 ocamlc 抱怨
Error: This Expression has type unit -> float
but an expression was expected of type float
告诉我 start 和 end 绑定到 Sys.time,而不是 Sys.time 的返回值。
我想要避免的这种行为不是 OCamly 吗?我想以另一种方式做事吗?我只是错过了一些非常明显的东西吗?
【问题讨论】:
标签: functional-programming ocaml variable-assignment