我試圖解密calc函數的返回,但是我很困惑。 我有f函數需要3個整數並返回一個int。 我認爲計算函數應該返回val calc : int -> int = <fun>
,因爲f必須要3個整數,我給它x和y,所以現在需要一個返回另一個int,最終結果。爲什麼這個邏輯不正確? 我無法理解實際的輸出,特別是當我強迫f中的參數爲整數時的polymorfic值。在OCaml中解密函數返回
# let f (x : int) (y : int) (z : int) = x + y + z;;
val f : int -> int -> int -> int = <fun>
# let calc x y f = f x y;;
val calc : 'a -> 'b -> ('a -> 'b -> 'c) -> 'c = <fun>
這個等價的代碼如何處理這個等價的代碼:'f(x:int)(y:int)(z:int)= x + y + z let calc x y g = g x y'? calc定義中的參數f(這裏是g)創建一個新的綁定,它會隱藏之前聲明的f。他們沒有共同之處。 –