Вдохновленный из ассортимента других «Советы для игры в гольф на языке XYZ». Как обычно, пожалуйста, предлагайте только советы, относящиеся к OCaml, а не к программированию в целом. Один совет за ответ, пожалуйста.
Вдохновленный из ассортимента других «Советы для игры в гольф на языке XYZ». Как обычно, пожалуйста, предлагайте только советы, относящиеся к OCaml, а не к программированию в целом. Один совет за ответ, пожалуйста.
Ответы:
Благодаря кортежам вы можете определять несколько переменных одновременно. А так как функции первоклассных граждан…
let f,g=(fun x->x+1),fun x->2*x
Вы не можете, однако, написать:
let f,g=(fun x->x+1),fun x->2*f x
Ошибка: несвязанное значение f
К сожалению, вы не можете избежать этой проблемы, используя rec
:
let rec f,g=(fun x->x+1),fun x->2*f x
Ошибка: только переменные разрешены в левой части
let rec
Функции в OCaml каррированы. Иногда полезно использовать этот факт.
let n y=f x y
можно написать
let n=f x
Если вам нужны арифметические операции, вы можете заключить их в круглые скобки, чтобы они вели себя как стандартные префиксные функции. (+)
, (-)
...
let n=(+)1;;
n 3;;
- : int = 4