【发布时间】:2018-07-29 12:09:22
【问题描述】:
对于如下循环:
let rec loop () = loop ()
根据 try.ocamlpro.com 的签名是:
val loop : unit -> 'a = <fun>
为什么会这样? loop() 永远不会停止调用自己,所以它不应该返回任何东西吗?
【问题讨论】:
-
除了好的答案之外,您可以考虑
if x then 1 else loop ()是否应该产生类型错误。if x then "string" else loop ()呢?
标签: ocaml type-inference hindley-milner