Exercice 1.
Prévoir le résultat des instructions suivantes :
|
let f = function x -> (function y -> x + y) ;; let g = f 3 ;; let h = g 5 ;; |
|
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez :
Pour poursuivre votre exploration, vous pouvez :
Exercice 2.
Prévoir le résultat des instructions suivantes :
|
let f = function u -> function x -> (u x) +. 3. ;; let g = f sqrt ;; let h = g 4 ;; |
|
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez :
Pour poursuivre votre exploration, vous pouvez :
Exercice 3.
Prévoir le résultat des instructions suivantes :
|
let f = function f -> function f -> function f -> 0 in f "1" 2 3.;; let f = function f -> function f -> function f -> f in f "1" 2 3. ;; let f = function g -> function h -> function f -> g in f "1" 2 3. ;; |
|
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez :
Pour poursuivre votre exploration, vous pouvez :
Exercice 4.
Prévoir le résultat des instructions suivantes :
|
let f = function u -> (u 4) / 5 ;; let g = function v -> function x -> v (function y -> x + y) + x ;; let h = g f ;; let a = h 11 ;; |
|
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez :
Pour poursuivre votre exploration, vous pouvez :
Exercice 5.
Écrire une fonction qui à une fonction {f} associe :
-
la fonction qui à {x} associe {f(x+1)}.
-
la fonction qui à {x} associe {f(x)\sqrt{1+f(x)^2}}.
-
la fonction qui à {x} associe {f(f(x))}.
|
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez :
Pour poursuivre votre exploration, vous pouvez :
Exercice 6.
Écrire une fonction (et prévoir son type le plus général) qui à deux fonctions {f} et {g} associe :
-
la fonction composée {f\circ g}.
-
la fonction {\min(f,g)}.
-
la fonction {\max(f\circ g,g\circ f)}.
|
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez :
Pour poursuivre votre exploration, vous pouvez :
Exercice 7.
Reconnaître le type des fonctions {f,g,h} :
|
let f x y = x y ;; let g x y = x (x y) ;; let h x y = x (y x) ;; |
|
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez :
Pour poursuivre votre exploration, vous pouvez :
Exercice 8.
Identifier le type et le rôle de la fonction suivante, et en proposer une réécriture plus simple :
|
let rec hic = fun f -> fun | 0 -> (fun x -> x) | n -> (fun x -> (f ((hic f (n-1)) x))) ;; |
|
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez :
Pour poursuivre votre exploration, vous pouvez :
Exercice 9.
Reconnaître la signature (le type) des fonctions suivantes :
|
let f = function x, y -> if x then y else 0 ;; let g = fun x y -> if x > y then (x,y) else (y,x) ;; let h = function (x,y,z) -> function x -> (x,y,z) ;; |
|
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez :
Pour poursuivre votre exploration, vous pouvez :
Exercice 10.
La définition de la fonction « h » conduit à une erreur.
Prévoir, interpréter, puis corriger cette erreur.
|
let f = function x -> x + 1 ;; let g = function x -> 2 * x ;; let h = min f g ;; |
|
Cliquer ici pour voir (ou cacher) le corrigé
Pour voir la suite de ce contenu, vous devez :
Pour poursuivre votre exploration, vous pouvez :