• Aucun résultat trouvé

Programmation fonctionnelle - TD1 Licence 3

N/A
N/A
Protected

Academic year: 2022

Partager "Programmation fonctionnelle - TD1 Licence 3"

Copied!
2
0
0

Texte intégral

(1)

Programmation fonctionnelle - TD1

Licence 3

Stefano Guerrini 29 janvier 2010

1. Pr´evoir le r´esultat fourni par l’interpr´eteur OCaml apr`es chacune des commandes sui- vantes, entr´ees dans l’ordre

# let x = 2;;

# let y = x + 1 in let x = 3

in x + y;;

# let x = 3

in let y = x + 1 in x + y;;

Pourquoi les deux derni`eres commandes ne fournissent-elles pas le mˆeme r´esultat ? 2. Expliquer le comportement suivant :

# let x = 3;;

val x : int = 3

# let f y = y + x;;

val f : int -> int = <fun>

# f 2;;

- : int = 5

# let x = 0;;

val x : int = 0

# f 2 ;;

- : int = 5

3. Donner le type des expressions suivantes : (a) (fun x -> x + 1) 6

(b) fun x -> x + 1 (c) fun x y -> x + y

(d) let s = "a" in fun t -> t ^ s

4. Donner des exemples de fonctions avec les types suivants : (a) (int -> int) -> int

(b) int -> (int -> int)

(c) (int -> int) -> (int -> int) (d) int * int -> int

1

(2)

(e) int -> int * int

5. ´Ecrire la fonction max prenant deux argument entiers et renvoyant le maximum plus 1 et la fonction max3 prenant trois argument et renvoyant le maximum plus 1. ´Ecrire les mˆemes fonctions pour les couples et les triples.

6. ´Ecrire les projections pour les quadruples. ´Ecrire une fonction qui prend une quadruple et renvoie la quadruple ordonn´ee de l’´el´ement plus petit au plus grand. ´Ecrire une fonction de quadruple que v´erifie si la quadruple contient 0 et si les ´el´ement de la quadruple son du type n, n+ 1, n+ 2, n+ 3.

7. ´Ecrire une fonction qui compose les 2 fonctions pass´ees en argument, l’applique `a 0 et ajoute 2 au r´esultat. Quelle est le type de la fonction ? Appliquer cette fonction aux fonctions double et carreAppliquer cette fonction aux fonctions double et carre qui retournent respectivement le double et le carr´e de leur argument.

8. ´Ecrire une fonctionf qui, `a son argumentx, renvoie la fonction qui multiplie son propre param`etre par x. Voici apr`es une exemple d’utilisation et du r´esultat retourn´e :

#(f(3))(4);;

- : int = 12

9. ´Evaluer les expressions suivants (r´e´ecrire eux jusqu’au ce n’est plus possible de les trans- former)

(a) let x=1+2 in ((function y -> y+x) x);;

(b) let x=1+2 in ((function x -> x+x) x);;

(c)

let f1 = function f2 -> (function x -> f2 x) in let g = function x -> x+1

in f1 g 2;;

10. ´Ecrire la fonction fac que calcul le factoriel d’un entier.

2

Références

Documents relatifs

[r]

[r]

[r]

[r]

Il en résulte que les opérations d’effacement peuvent être réalisées dans n’importe quel ordre et qu’en fin de parcours c’est à dire au bout de n-1 minutes, c’est toujours

Seule l’utilisation du logiciel scilab et de sa rubrique d’aide est

a - Ecrire un programme pour afficher un d´ egrad´ e de couleur entre les couleurs rouge et verte : chaque point de coordonn´ ees (x, y) devra avoir une intensit´ e de couleur rouge

&#34;Possédant initialement un couple de lapins, combien de couples obtient-on en douze mois si chaque couple engendre tous les mois un nouveau couple à compter du second mois de