(* Cẫteva exemple simple cu funcții *) (* definim o funcție *) let f x = x + 1 (* aceeași definiție, folosind o valoare de tip funcție *) let f = fun x -> x + 1 (* apelăm funcția *) let test1 = f 2 (* compunerea a două funcții *) let comp f g x = f (g x) (* la fel, folosind o funcție în partea dreaptă *) let comp f g = fun x -> f (g x) (* instanțiem compunerea *) let fc1 = comp (fun x -> 2*x) (fun x -> x + 1) (* rezultatul e funcția matematică f(x) = 2*(x+1) *) (* calculăm o valoare *) let test2 = fc1 3 (* puteam calcula și direct *) let test3 = comp (fun x -> 2*x) (fun x -> x + 1) 3 (* o funcție cu două argumente *) let g x y = 2*x + y (* același lucru, cu notația explicită de funcție *) let g = fun x -> fun y -> 2*x + y (* instanțiind primul argument, obținem o functie de la întregi la întregi *) let g2 = g 2 (* e funcția f(y) = 4 + y *) (* apelăm g2(3) = 4 + 3 = 7 *) let test4 = g2 3 (* funcția care scade două numere: diff x y = x - y *) let diff = (-) (* dăm primul argument, din stânga lui minus: d3 x = 3 - x *) let d3 = diff 3 (* apelăm funcția: 3 - 5 = -2 *) let test5 = d3 5 (* putem scrie și direct *) let test6 = diff 3 5 let test7 = (-) 3 5
This document was generated using caml2html