« Premiers pas en OCaml/Fonctions » : différence entre les versions
Contenu supprimé Contenu ajouté
m coquille |
+ref +precision |
||
Ligne 12 :
Vous verrez à plusieurs reprises dans les définitions les notations suivantes :
* '''<mot en français>''' : A remplacer par :
** '''<type>''' :
** '''<expression>''' :
** '''<paramètre>''' :
{{Exemple
|contenu=
<source lang="ocaml">
function
(* peut donner *)
function x -> x;;
function bob -> true;;
(* ... *)
Ligne 45 ⟶ 43 :
|contenu=
<source lang="ocaml">
# function
- : <type du paramètre> -> <type de l'expression> = <fun>
</source>
}}
Ligne 128 ⟶ 126 :
|contenu=
<source lang="ocaml">
# let <nom de la fonction> = function
val <nom de la fonction> : <type du paramètre> -> <type de l'expression> = <fun>
Ligne 155 ⟶ 153 :
Une fonction à plusieurs paramètres peut être vu comme une suite de fonction à un paramètre.
<source lang="ocaml">
# let fxy = function x -> function y -> x * y;;
(* = *)
# let fxy = fun x y -> x * y;;
val fxy : int -> int -> int = <fun>
</source>
Le mot-clef '''fun''' permet de passé plusieurs paramètre a une fonction contrairement au mot-clef '''function'''.
{{Attention |Avec_fond = oui| Il est important de bien comprendre le résultat de la fonction précédente :
Ligne 201 ⟶ 202 :
Pire si vous mettiez
<source lang="ocaml">
# fxy 1 + 2 3;;
</source>
Ligne 207 ⟶ 208 :
<source lang="ocaml">
# (((fxy 1) + )2) 3;;
</source>
C'est pour cette raison qu'on a droit a une belle erreur de compilation.
Ligne 218 ⟶ 219 :
Pour corriger ce problème il faut mettre des parenthèses sur l'opération.
<source lang="ocaml">
# fxy (1 + 2) 3;;
- : int = 9
Ligne 314 ⟶ 315 :
</source>
==
Toutes ces informations sont disponibles sur la documentation officielle :
* {{LienWeb|format=html|licence=copyright|langue=en|url=http://caml.inria.fr/pub/docs/manual-ocaml/expr.html#toc48|commentaire=Documentation sur les fonctions}}
* {{LienWeb|format=html|licence=copyright|langue=fr|url=http://caml.inria.fr/resources/doc/faq/core.fr.html#function | commentaire=FAQ sur les fonctions }}
|