Inspirado na variedade de outras 'Dicas para jogar golfe no idioma xyz'. Como sempre, sugira apenas dicas específicas para o OCaml e não para programação em geral. Uma dica por resposta, por favor.
Inspirado na variedade de outras 'Dicas para jogar golfe no idioma xyz'. Como sempre, sugira apenas dicas específicas para o OCaml e não para programação em geral. Uma dica por resposta, por favor.
Respostas:
Graças às tuplas, você pode definir várias variáveis ao mesmo tempo. E como funções são cidadãos de primeira classe…:
let f,g=(fun x->x+1),fun x->2*x
Você não pode, no entanto, escrever:
let f,g=(fun x->x+1),fun x->2*f x
Erro: valor não consolidado f
Infelizmente, você não pode evitar o problema usando rec
:
let rec f,g=(fun x->x+1),fun x->2*f x
Erro: Somente variáveis são permitidas no lado esquerdo da
let rec
As funções no OCaml são curryied. Pode ser útil explorar esse fato algumas vezes.
let n y=f x y
pode ser escrito
let n=f x
Se você precisar de operações aritméticas, poderá colocá-las entre parênteses para que se comportem como funções padrão de prefixo. (+)
, (-)
…
let n=(+)1;;
n 3;;
- : int = 4