Table des matières
Initiation à OCaml
OCaml est un langage essentiellement développé en France notamment par l'INRIA. C'est un langage fonctionnel. C'est un langage développé par des universitaires avec une approche très formelle. Néanmoins, c'est un langage utilisé dans l'industrie notamment quand il s'agit de prouver la validité d'un programme.
C'est un langage difficile à maîtriser, on va se limiter aux bases.
Pour faire des tests, vous pourrez utiliser un environnement en ligne
Console, programme
Comme souvent, vous disposez à la fois d'une console dans laquelle vous pouvez entrer des commandes qui seront exécutées immédiatement. Le prompt de la console est représenté par le caractère #.
Vous pouvez aussi enregistrer vos commandes dans un fichier et les exécuter ensuite.
Syntaxe de base
Lisez d'abord cet article.
Exercices
Testez les expressions suivantes. Essayez de deviner le résultat puis vérifier dans OCaml, corrigez-les au besoin.
let r = let x = 7 in 6 * x;; let a = (r - 6) / 6 - 6;; let o = r * r - x * x - 51;; let u = let x = 9 in if (x>9) then 9/x else x/9;;
Corrigez ces expressions
let pi_sur_4 = 3.14 / 4.;; let dans_l_ordre = 1 < 2 < 3;; let positif = let a = 42 in if a >= 0 then true;; let double_absolu = let x = -2.7 in (if x>0 then x else -x) *. 2;;
Fonctions
Lisez d'abord cet article.
Exercices fonctions
- Écrire une fonction cube de type
float -> floatqui élève son argument au cube. - Écrire une fonction
is_positivede typeint -> boolqui teste si son argument est positif ou nul. - Écrire une fonction
is_evende type `int → bool` qui teste si son argument est pair.
On pourra utiliser l’opérateurmodcalculant le reste dans une division euclidienne.
Exercices fonctions à deux variables
- Écrire une fonction qui calcule le produit de 3 entiers donnés en argument,
- Écrire une fonction qui détermine si trois arguments entiers positifs forment un triplet pythagoricien – comme 3, 4, 5 qui vérifient $3^2 + 4^2 = 5^2$
Exercice fonction comme argument
Écrire une fonction repete_n qui reçoit comme argument :
- une fonction
fà une variable réelle, - un entier
n, - un nombre réel
x.
Le résultat de repete_n est l'application n fois de f. Par exemple repete_n f 3 x renvoie l'équivalent de f(f(f x)).
Exercice récurrence
Écrivez une fonction somme recevant l'argument n et calculant la somme des entiers de 1 à n.
Listes
Lisez d'abord cet article.
Exercice
- Écrivez une fonction
longueurdonnant la longueur d'une liste. - Soit un
polynomeà coefficient entiers, par exemple $x^5 + 3\,x^2 - 4\,x + 2$. On peut représenter ce polynôme par une liste[2, -4, 3, 0, 0, 1]où chaque terme représente le coefficient de $x$ à la puissance donné par l'indice du terme. Par exemple,3à l'indice 2 signifie $3\,x^2$.
Écrivez une fonction qui donne la liste dérivée, c'est à dire ici[-4, 6, 0, 0, 5]pour $5\,x^4 +6\,x -4$.
