Мне кажется, что мне не хватает некоторых важных основ, касающихся этого странного языка.
Рассмотрим следующую программу:
let q f x = f x x;;
let s = q (+);;
Если я запусту это в OCaml, я получу:
val q : ('a -> 'a -> 'b) -> 'a -> 'b = <fun>
val s : int -> int = <fun>
По сравнению с другим кодом OCaml, который я видел, синтаксис для меня действительно странный. В первой строке, что делает установка q в fxx? Что делает q (+) также (надеясь, что смогу понять это, если получу первую часть)? Любая помощь в понимании этого кода поможет.