« INFO401 : utilisation Caml » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Ligne 1 : Ligne 1 :
=Quelques éléments de syntaxe pour Caml=
=Quelques éléments de syntaxe pour Caml=

==Commentaires==

En Caml, les commentaires sont entourés de "<tt>(*</tt>" et "<tt>*)</tt>" :
(* Ceci est un commentaire (* et ceci est un commentaire dans un commentaire *) et ici, c'est toujours des commentaires *)



==Définitions==
==Définitions==


* '''définition'''
On peut définir une valeur et lui donner un nom avec la syntaxe
let nom = expr
Par exemple :
let pi = 3.1415926536
let pi = 3.1415926536


* '''définition avec type explicite'''
Il est possible de préciser le type de la définition, même si cela est rarement nécessaires :
let x:float = pi /. 2.0
let x:float = pi /. 2.0


* '''définition d'une fonction'''

Pour définir une fonction, on peut utiliser deux syntaxes :
let valeurAbsolue n = if (n>0) then n
else (-n)
ou bien
let valeurAbsolue = fun n -> if (n>0) then n
let valeurAbsolue = fun n -> if (n>0) then n
else (-n)
else (-n)
* '''définition d'une fonction''' deuxième méthode
let valeurAbsolue n = if (n>0) then n
else (-n)


* '''définition d'une fonction, avec types explicites'''
Ici aussi, on peut préciser les types :
let valeurAbsolue (n:int) : int = if (n>0) then n
else (-n)
ou
let valeurAbsolue : int->int = fun n -> if (n>0) then n
let valeurAbsolue : int->int = fun n -> if (n>0) then n
else (-n)
else (-n)
ou
let valeurAbsolue (n:int) : int = if (n>0) then n
else (-n)


* '''définition locale à une expression'''

Il possible de faire des définitions locales avec la syntaxe
... let x=... in ...
Par exemple,
let x:float = let pi = 3.14 in
let x:float = let pi = 3.14 in
pi /. 2.0
pi /. 2.0

Version du 13 janvier 2009 à 17:22

Quelques éléments de syntaxe pour Caml

Commentaires

En Caml, les commentaires sont entourés de "(*" et "*)" :

(* Ceci est un commentaire (* et ceci est un commentaire dans un commentaire *) et ici, c'est toujours des commentaires *)


Définitions

  • définition
let pi = 3.1415926536
  • définition avec type explicite
let x:float = pi /. 2.0
  • définition d'une fonction
let valeurAbsolue = fun n -> if (n>0) then n
                                      else (-n)
  • définition d'une fonction deuxième méthode
let valeurAbsolue n = if (n>0) then n
                               else (-n)
  • définition d'une fonction, avec types explicites
let valeurAbsolue : int->int = fun n -> if (n>0) then n
                                                 else (-n)

ou

let valeurAbsolue (n:int) : int = if (n>0) then n
                                           else (-n)
  • définition locale à une expression
let x:float = let pi = 3.14 in
                pi /. 2.0

Si une variable est définie plusieurs fois, c'est toujours la dernière définition qui est utilisée.

Utilisation du toplevel

Utilisation d'Emacs et du mode tuareg

Compilation