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.


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

3

Nunca use comenzar [...] final

Esta:

begin […] end 

siempre es sinónimo de esto:

([…])

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


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.