这个OCaml签名是否可行?

pki*_*162 4 ocaml

签名的OCaml功能:

'a -> 'b
Run Code Online (Sandbox Code Playgroud)

可能?

我认为有可能,但是,我不知道答案背后的基本逻辑,所以解释它会很棒:)

编辑:它不能递归循环永远

gsg*_*gsg 8

有几个"合法"的答案.一个是永远循环,你排除了:

let rec f x = f x
Run Code Online (Sandbox Code Playgroud)

另一个是通过提出异常或终止程序来分歧:

let f x = exit 0

let f x = assert false

let f x = failwith "die"
Run Code Online (Sandbox Code Playgroud)