Conseils pour jouer au golf à OCaml


10

Inspiré de l'assortiment d'autres «Conseils pour jouer au golf dans la langue xyz». Comme d'habitude, veuillez suggérer uniquement des conseils spécifiques à OCaml et non à la programmation en général. Un conseil par réponse s'il vous plaît.


1
Cela vous dérange si j'ajoute quelques conseils évidents?
Édouard

Réponses:


4

Utiliser des fonctions au lieu de correspondre

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

est plus court que

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

3

Ne jamais utiliser begin […] end

Cette:

begin […] end 

est toujours synonyme de ceci:

([…])

2

Définissez plusieurs variables ou fonctions à la fois

Grâce aux tuples, vous pouvez définir plusieurs variables à la fois. Et comme les fonctions sont des citoyens de première classe…:

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

Vous ne pouvez cependant pas écrire:

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

Erreur: valeur non liée f

Malheureusement, vous ne pouvez pas éviter le problème en utilisant rec:

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

Erreur: seules les variables sont autorisées comme côté gauche de let rec


2

Exploiter les fonctions curryied

Les fonctions dans OCaml sont curryied. Il pourrait être utile d'exploiter ce fait parfois.

let n y=f x y

peut être écrit

let n=f x

Si vous avez besoin d'opérations arithmétiques, vous pouvez les entourer de parenthèses afin qu'elles se comportent comme des fonctions de préfixe standard. (+),, (-)

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

- : int = 4

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.