« Premiers pas en OCaml/Fonctions » : différence entre les versions
Contenu supprimé Contenu ajouté
création de la page 1ère partie |
+ 2ème partie page |
||
Ligne 8 :
== Les fonctions ==
=== Qu'est-ce qu'une
Les fonctions (ou abstractions) sont défini par la syntaxe suivante :
Ligne 23 :
On peut par exemple créer une fonction qui prend un entier en paramètre et renvoi son successeur.
<source lang="ocaml">
# function x -> x + 1;;
Ligne 30 ⟶ 28 :
- : int -> int = <fun>
</source>
}}▼
Voyons maintenant comment l'utilisé.
<source lang="ocaml">
# (function x -> x + 1) 10;;
Ligne 40 ⟶ 35 :
- : int = 11
</source>
== Définition ==
Ligne 57 ⟶ 52 :
}}
On peut aussi effectuer une définition local avec le mot-clef '''in''':
=== Exemple d'utilisation ===▼
{{Définition
Pour l'utiliser :▼
| titre=Définition locale
|contenu=
<source lang="ocaml">
let <identificateur> = <expression> in -> <expression utilisant identificateur>;;
</source>
▲}}
Les définitions locales sont utiles pour factorisées des calcules.
▲=== Exemple d'utilisation des définitions ===
▲Pour l'utiliser :
<source lang="ocaml">
# let nombre = 10;;
Ligne 66 ⟶ 69 :
val nombre : int = 10
</source>
On peut ensuite appelé notre nouvel identificateur pour récupérer sa valeur.
<source lang="ocaml">
# nombre;;
Ligne 75 ⟶ 76 :
val nombre : int = 10
</source>
=== Exemple d'utilisation des définitions locales ===
Si nous voulons effectuer le calcul suivant : <math>2*3*4 + 2*3</math>
Ici 2*3 est calculé 2 fois. Nous pouvons résoudre ce problème en utilisant les définitions locales.
<source lang="ocaml">
# let tmp = 2*3 in tmp * 4 + tmp;;
- : int = 30
(* La définition est temporaire. *)
# tmp;;
Error: Unbound value tmp
</source>
== Définition et fonctions ==
|