Polytech Paris Saclay
2024-2025
Adrien Durier
OCaml
OCaml
Expressions
Les expressions sont les blocs de bases d'OCaml
⚠ Deux Règles:
let x = 3 * 4Donc, ceci n'est pas une expression !!!!
(car ceci n'a pas de type!)
Expressions
Les expressions sont les blocs de bases d'OCaml
3 * 4Par contre, ceci est une expression !!!!
⚠ Deux Règles:
(car ceci est de type int!)
Expressions
Les expressions sont les blocs de bases d'OCaml
⚠ Deux Règles:
3 * xPar contre, ceci est une expression !!!!
Expressions
x + 7
true
x > 8
if x then y else zLes lignes suivantes sont également des expressions (et ont donc un type) !
bool
int
bool
?
→ Si on connaît le type des variables !
Expressions
if
x
then
y
else
z?
x: ?
z: ?
y: ?
Expressions
if
x
then
y
else
z?
x: bool
z: ?
y: ?
=
=
1. Un programme est une succession de déclarations let
let x = 3
let y = 4
let f x = x * y
let y = f 52. On ne peut pas utiliser une déclarations let dans une expression
let f x = let x = 4;
blablabla + x ...(sur Moodle)
OCaml
Portée
let ... = ... in ...
→ Définit une portée pour la variable x
(libération de mémoire, etc)
let x = e in e'e et e' doivent être des expressions
Ou la définition de variables locales
x est définie dans e' (et seulement dans e')
x était déjà défini, le nom est écrasé (mais seulement dans e')
Portée
let x z y =
let x =
let z =
y - z in
let x z y =
z - y in
x y z in
x + yExercice!