« Premiers pas en OCaml/Fonctions » : différence entre les versions
Contenu supprimé Contenu ajouté
m ortho, syntaxe & co |
m style |
||
Ligne 119 :
</source>
{{Attention|Avec_fond = oui|1=Il est
<source lang="ocaml">
Disséquons élément par élément :▼
val successeur : int -> int = <fun>
</source>
}}▼
▲Disséquons le élément par élément :
* '''val successeur :''' : 'Successeur' est ici le nom de la définition.
* '''int -> int''' : La fonction prend un entier en paramètre et donne un entier en résultat.
* '''= <fun>''' : La valeur de la définition est une fonction.
▲}}
== Fonctions à plusieurs paramètres ==
Ligne 134 ⟶ 138 :
</source>
{{Attention |Avec_fond = oui| Il est important de bien comprendre
<source lang="ocaml">
Il faut savoir que pour le type des fonctions '''le parenthésage à droite est implicite'''. Pour plus de compréhension mettons des parenthèses à cette valeur.▼
[...] int -> int -> int [...]
</source>
}}
▲Il faut savoir que pour le type des fonctions '''le parenthésage à droite est implicite'''. Pour plus de compréhension mettons des parenthèses.
Imaginez que l'on passe à la fonction fxy qu'un seul paramètre : (2 -> (int -> int)) on récupère alors une fonction qui prend en entier en paramètre et retourne un entier en paramètre (int -> int).
<source lang="ocaml">
Ligne 146 ⟶ 153 :
Maintenant imaginez que l'on passe à la fonction fxy deux paramètres : (2 -> (5 -> int)) on récupère un entier.
<source lang="ocaml">
# ((fxy 2) 5);;
# (fxy 2) 5;;
# fxy 2 5;;
Ligne 158 ⟶ 165 :
<source lang="ocaml">
# fxy 2 3 + 5;;
- : int = 11
</source>
Ligne 165 ⟶ 173 :
<source lang="ocaml">
# ((fxy 2) 3) + 5;;
- : int = 11
</source>
|