Consejos para jugar golf en OCaml

10

Inspirado en el surtido de otros 'Consejos para jugar al golf en lenguaje xyz'. Como de costumbre, solo sugiera sugerencias que sean específicas de OCaml y no programación en general. Un consejo por respuesta por favor.

variables heladas
fuente
1
¿Te importa si agrego algunos consejos obvios?
Édouard

Respuestas:

4

Usar funciones en lugar de partido

let rec f=function[]->0|_::t->1+f t

es más corto que

let rec f x=match x with[]->0|_::t->1+f t
Édouard
fuente
3

Nunca use comenzar [...] final

Esta:

begin […] end 

siempre es sinónimo de esto:

([…])
Édouard
fuente
2

Definir varias variables o funciones a la vez.

Gracias a las tuplas, puede definir varias variables a la vez. Y como funciones son ciudadanos de primera clase ...:

let f,g=(fun x->x+1),fun x->2*x

Sin embargo, no puedes escribir:

let f,g=(fun x->x+1),fun x->2*f x

Error: valor independiente f

Desafortunadamente, no puede evitar el problema usando rec:

let rec f,g=(fun x->x+1),fun x->2*f x

Error: solo se permiten variables como el lado izquierdo de let rec

Édouard
fuente
2

Explotar curryied funciones

Las funciones en OCaml están al curry. Puede ser útil explotar ese hecho a veces.

let n y=f x y

puede ser escrito

let n=f x

Si necesita operaciones aritméticas, puede rodearlas con paréntesis para que se comporten como funciones de prefijo estándar. (+)` (-)`

let n=(+)1;;
n 3;;

- : int = 4

Édouard
fuente