我在理解OCaml中高阶函数的函数类型签名时遇到麻烦。
fun f -> f 3
(int -> a) -> a
Run Code Online (Sandbox Code Playgroud)
我处理的方式是该f 3部分将一个int作为输入并返回由函数定义的类型,该类型f表示为a。所以真的fun f是一种类型(int->a)。但是,最后a一个来自(int -> a) -> a哪里?
syntax ocaml type-inference higher-order-functions type-signature