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.
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.
Respuestas:
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
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