Dans un monde sans eet de bord…
ou encore…dans un monde purement fonctionnel…
{on peut evaluer les fonctions (et leurs arguments) dans
n’importe quel ordre : let a = f x + g x + h (z x) :
le resultats sera toujours le m^eme.
{si f x est tres long a calculer, le compilateur peut stocker le
resultat pour le reutiliser plus tard.
{simplie la comprehension (humaine et automatique) d’un
programme.
{ouvre plein de possibilite pour l’optimisation du code.
{reduit fortement la presence de bug.
…mais on a quand besoin des eets de bords de temps en
temps… (au moins pour acher un resultat !)
Les eets de bords dans OCaml
print int, print char,print string, print float,
print endline, print newline
Printf.printf, …
read int, read line, read float, …
Les operations sur les chiers
Les references :
let i = ref 0
let f x = begin i := !i + 1; x+ !i end
# f 10;;
– : int = 11
# f 10;;
– : int = 12
etc.
f est un fonction a eet de bord
Le temps entre en piste
Lorsque des eets de bords sont presents, l’ordre d’evaluation d’une expression / des arguments d’une fonction,peut in uer sur le resultat. On doit prendre en compte l’aspect temporel de l’execution du programme. C’est une complication supplementaire.
…….
Cours Caml (168 KO) (Cours PDF)