1
我有个问题,为什么OCaml的行为有点不寻常。通过定义功能对OCaml的行为好奇
let abs_diff x y = abs(x - y);;
我们得到val abs_diff : int -> int -> int = <fun>
现在作为
let abs_diff x y = fun x -> (fun y -> abs(x - y));;
val abs_diff : 'a -> 'b -> int -> int -> int = <fun>
定义现在使用称为
let dist_from3 = abs_diff 3;;
与第一个定义它完美的工作,但第二个它没有按预期工作。我们得到,这是
val dist_from3 : '_a -> int -> int -> int = <fun>
为什么它表现得像是,为什么在第一的这两个定义看起来相同的功能有什么不同?
现在我看到我的错也,谢谢:d – measuretheory