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