Évaluation et application des fonctions Let f = function x -> ( function y -> x+y );; Type :int -> (int ->int) int -> int ->int f int
44 Évaluation et application des fonctions ( function x -> x + x ) 4 ;; Paramètre de la fonction Corps de la fonction Résultat de l’évaluation : = 8 L’application d’une fonction à un argument consiste à remplacer, dans le corps de la fonction, toute occurrence du paramètre de la fonction par la valeur de son argument. Valeur de l’argument
let x = 3 in ( ( function x -> x + x) 4) ;; Évaluation et application des fonctions Let x = <exp1> in <exp2> = 8
let x = 3 in (( function y -> x + y ) 4 ) ;; 43 Valeur retournée Résultat de l’évaluation - : int = 7
let y = 4 in let x = 3 in (( function y -> x+y ) x ) ;; Évaluation et application des fonctions Portée de y Portée de x 333 Résultat de l’évaluation - : int = 6
let x = 7 in let f(y) = y*x in let x = true in if x then (f 3) else (f 2) ;; Évaluation et application des fonctions Valeur retournée Paramètre de la fonction true7 f 3 = 3 * 7 = 21 Résultat de l’évaluation - : int = 21 = y*7
Évaluation et application des fonctions (2) # let f = function x -> x f ‘a val f : 'a -> 'a = <fun>
# let g = function h -> function x -> (h x) ;; Évaluation et application des fonctions (2) g h ‘a * val g : (‘a -> ‘b) -> ‘a -> b’ = <fun>
Évaluation et application des fonctions (2) # let h = function x -> x + 1 h int val h : int -> int = <fun>
let g2 = function h -> function x -> (h x+1) in ( g2 h 1 ) ;; g2 h x = (h x) +1 g2 h x = h(x) +1 Appliquer g2 aux deux paramètres h et 1 h = function x -> x + 1 h(x) = x+1 let g2 = function f -> function x -> (f x+1) in ( g2 h 1 ) ;; Évaluation et application des fonctions (2)Let x = <exp1> in <exp2> g2 h x = h(x)+1 = h(1)+1 = 2+1 =3 Résultat de l’évaluation - : int = 3
let f1 = function f2 -> (function x -> f2 x) in let g = function x -> x+1 in f1 g 2 ;; Évaluer l’expression f1 g 2 avec : f1 = fun f2 x -> f2 x g = fun x -> x + 1 Prend une fonction f et une valeur x comme paramètres et revoie le résultat de l’application de f à x, ie f(x) Prend une un entier x et renvoie son successeur F1 g 2 = g(2) = (fun x->x+1)2 = 3