SlideShare une entreprise Scribd logo
Aide-mémoire de CAML
Déclarations et instructions
Commentaires : (* commentaire *)
définition d’une valeur : let identificateur = expression
" récursive : let rec identificateur = expression
" locale : let identificateur = valeur in expression
expression where v = valeur
" parallèles : let id1 = val1 and id2 = val2
" successives : let id1 = val1in let id1 = val2
référence ou variable modifiable : let ident. = ref(val.)
valeur d’une référence : ! identificateur
modification d’une référence :. Identificateur := valeur
fonction sans argument : let identificateur() = ...
" à un argument : let identificateur x = ...
" à n arguments : let identificateur x1 .. xn = ...
ne rien faire : ()
expression conditionnelle :
if test then expression_vrai else expression_faux
choix multiple : match valeur with
| motif_1 -> expr._1
| motif_2 -> expr._2
...
| motif_n -> expr._n
| _ -> expr._par_défaut
calculs en séquence : begin exp1; expr2 ; … end
(exp1; expr2 ; … )
boucle croissante :
for i = début To fin do expression done
" décroissante :
for i = début downto fin do expression done
" conditionnelle : while condition do expression done
déclencher une exception : failwith "message"
Expressions booléennes
vrai, faux : true false
et, ou, non : & / && or / || not
comparaison : < <= = <> >= >
booléen → chaîne : string_of_bool
chaîne → booléen : bool_of_string
Expressions entières
opérations arithmétiques :.+, , *, /
modulo : mod
valeur absolue : abs
entier précédent, suivant : pred, succ
minimum et maximum : min a b, max a b
entier → chaîne : string_of_int
chaîne → entier : int_of_string
entier aléatoire entre 0 et n 1 : random__int(n)
Expressions réelles
opérations arithmétiques : +. -. *. /.
puissance : ** / **.
minimum et maximum : min a b, max a b
fonctions mathématiques : abs_float, exp, log, sqrt, sin,
cos, tan, sinh, cosh, tanh, asin, acos, atan
réel → chaîne : string_of_float
réel → entier : int_of_float
chaîne → réel : float_of_string
entier → réel : float_of_int
réel aléatoire entre 0 et a : random float(a)
Expressions rationnelles
utiliser les rationnels : #open "num"
opérations arithmétiques : +/, /, */, //, **/
minus_num, quo_num, mod_num, square_num
comparaison : </, <=/, =/, <>/, >=/, >/
minimum et maximum : min_num a b, max_num a b
valeur absolue : abs_num
numérateur, dénominateur : numerator_num,
denominator_num
simplifier une fraction : normalize_num
partie entière : floor_num round_num ceiling_num
rationnel → chaîne : string_of_num
rationnel → entier : int_of_num
rationnel → réel : float_of_num
chaîne → rationnel : num_of_string
entier → rationnel : num_of_int
réel → rationnel : num_of_float
Listes
liste : [elt_1; elt_2; ... ]
liste vide : [ ]
tête et queue : hd, tl / tête :: queue
longueur d’une liste : list_length
concaténation : @
image miroir : rev
appliquer une fonction : . map fonction liste
itérer un traitement : do_list traitement liste
test d’appartenance : mem élément liste
test de présence : exists prédicat liste
for_all prédicat liste
recherche d’un élément : index élément liste
vecteur → liste : list_of_vect
liste → vecteur : vect_of_list
opérations ensemblistes : union, intersect, subtract
tri : sort__sort ordre liste
itérer une fonction :
→ it_list fonction a liste
ex : it_list f a [x; y; z] f (f (f a x) y) z
→ list_it fonction liste a
ex : list_it f [x; y; z] a f x (f y (f z a))
Vecteurs
vecteur : [|elt_1; elt_2; ...|]
vecteur vide : [| |]
i-ème élément : identificateur.(indice)
modification : identificateur.(i) <- valeur
longueur d’un vecteur : vect_length
création d’un vecteur : make_vect longueur valeur
création d’une matrice : make_matrix n p valeur
extraction : sub_vect vecteur début longueur
concaténation : concat_vect
copie : copy_vect
appliquer une fonction : map_vect fonction vecteur
itérer un traitement : do_vect traitement vecteur
vecteur → liste : list_of_vect
liste → vecteur : vect_of_list
Chaînes de caractères
caractère : ‘caractère‘
chaîne de caractères : "chaîne"
i-ème caractère : identificateur.[indice]
modification : identificateur.[indice] <- caractère
longueur d’une chaîne : string_length
création : make_string longueur caractère
caractère → chaîne : make_string caractère
extraction : sub_string chaîne début longueur
concaténation : ch1^ch2 / concat[ch1; ch2; ...]
Graphisme
utiliser le graphisme : #open "graphics"
initialiser la fenêtre graphique : open_graph ""
refermer la fenêtre : close_graph()
effacer la fenêtre : clear_graph()
position du crayon : current_point()
changer la couleur du crayon : set_color couleur
couleurs : rgb r g b
black, white, red, green, blue, yellow, cyan, magenta
changer l’épaisseur du crayon : set_line_width épaisseur
tracer un point : plot x y
déplacer, crayon levé : moveto x y
crayon baissé : lineto x y
tracer un cercle : draw_circle x y rayon
écrire un texte : draw_string "texte"
peindre un rectangle : fill_rect x y largeur hauteur
un polygone : fill_poly [|(x0,y0);(x1,y1); ... |]
un disque : fill_circle x y rayon
attendre un événement : read_key()
wait_next_event [ev1; ev2; ...]
Entrées-sorties au terminal
impression de valeurs : print_int, print_float,
print_char, print_string print_endline
changer de ligne : print_newline()
lecture de valeurs : read_int, read_float, read_line
Entrées-sorties dans un fichier
ouverture en lecture : let canal = open_in "nom"
en écriture : let canal = open_out "nom"
lecture : input_char, input_line, input_byte, input_value
écriture : flush,
output_char, output_string, output_byte, output_value
fermeture : close_in, close_out
Commande de l’interpréteur
tracer une fonction : trace "fonction"
ne plus tracer une fonction : untrace "fonction"
utiliser une fonction d’impression : install_printer "fonction"
ne plus l’utiliser : remove_printer "fonction"
charger un fichier source : load "nom", include "nom"
charger un module compilé : load_object "nom"
nom complètement qualifié : module__nom
utiliser les noms courts d’un module : #open "module"
ne plus les utiliser : #close "module"
ajouter un répertoire de recherche : directory "chemin"
quitter l’interpréteur : quit()

Contenu connexe

Tendances

Chapitre 02 : Variables, Expressions et Instructions
Chapitre 02 : Variables, Expressions et InstructionsChapitre 02 : Variables, Expressions et Instructions
Chapitre 02 : Variables, Expressions et Instructions
L’Université Hassan 1er Settat
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
Tp1 compte rendu en langage c
Tp1 compte rendu en langage cTp1 compte rendu en langage c
Tp1 compte rendu en langage cEbrima NJIE
 
Mémento caml
Mémento camlMémento caml
Mémento caml
zan
 
Exercicescorrigesdivers
ExercicescorrigesdiversExercicescorrigesdivers
ExercicescorrigesdiversKarim Amane
 
C micro c_1_
C micro c_1_C micro c_1_
C micro c_1_
laidens
 
1763685
17636851763685
1763685
Adel Madrid
 
Chapitre1
Chapitre1Chapitre1
Chapitre1
Adel Madrid
 
Corrigé langage c
Corrigé langage cCorrigé langage c
Corrigé langage c
coursuniv
 
Exercices en langage c
Exercices en langage cExercices en langage c
Exercices en langage cDaoua Lotfi
 
Cours langage c
Cours langage cCours langage c
Cours langage c
coursuniv
 
Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019
Aziz Darouichi
 
C++ 11/14
C++ 11/14C++ 11/14
C++ 11/14
Alexandre Hamez
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
Aziz Darouichi
 
Memo java
Memo javaMemo java
Memo java
Ghazouani Mahdi
 
Initiation au C++
Initiation au C++Initiation au C++
Initiation au C++
IsenDev
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
Aziz Darouichi
 
01 correction-td smia-s2-info2
01 correction-td smia-s2-info201 correction-td smia-s2-info2
01 correction-td smia-s2-info2
L’Université Hassan 1er Settat
 

Tendances (20)

Chapitre 02 : Variables, Expressions et Instructions
Chapitre 02 : Variables, Expressions et InstructionsChapitre 02 : Variables, Expressions et Instructions
Chapitre 02 : Variables, Expressions et Instructions
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
Pointeuren c
Pointeuren cPointeuren c
Pointeuren c
 
Tp1 compte rendu en langage c
Tp1 compte rendu en langage cTp1 compte rendu en langage c
Tp1 compte rendu en langage c
 
Mémento caml
Mémento camlMémento caml
Mémento caml
 
Exercicescorrigesdivers
ExercicescorrigesdiversExercicescorrigesdivers
Exercicescorrigesdivers
 
C micro c_1_
C micro c_1_C micro c_1_
C micro c_1_
 
1763685
17636851763685
1763685
 
Chapitre1
Chapitre1Chapitre1
Chapitre1
 
Corrigé langage c
Corrigé langage cCorrigé langage c
Corrigé langage c
 
Exercices en langage c
Exercices en langage cExercices en langage c
Exercices en langage c
 
Cours langage c
Cours langage cCours langage c
Cours langage c
 
Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019Chapitre3TableauxEnCppV2019
Chapitre3TableauxEnCppV2019
 
C++ 11/14
C++ 11/14C++ 11/14
C++ 11/14
 
Chapitre5: Classes et objets
Chapitre5: Classes et objetsChapitre5: Classes et objets
Chapitre5: Classes et objets
 
Memo java
Memo javaMemo java
Memo java
 
Chapitre 2
Chapitre 2Chapitre 2
Chapitre 2
 
Initiation au C++
Initiation au C++Initiation au C++
Initiation au C++
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
 
01 correction-td smia-s2-info2
01 correction-td smia-s2-info201 correction-td smia-s2-info2
01 correction-td smia-s2-info2
 

Similaire à Aide mémoire de caml

resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
salah fenni
 
RCarte_Commandes-R.pdf
RCarte_Commandes-R.pdfRCarte_Commandes-R.pdf
RCarte_Commandes-R.pdf
DrissRifai1
 
cours python Chapitre 3- Les types de base.pptx
cours python Chapitre 3- Les types de base.pptxcours python Chapitre 3- Les types de base.pptx
cours python Chapitre 3- Les types de base.pptx
AhmathBambaMBACKE
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de données
ECAM Brussels Engineering School
 
cours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'applicationcours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'application
kamalomari2
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
Shellmates
 
De java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDe java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvements
Didier Plaindoux
 
langage C++
langage C++langage C++
langage C++
mohamednacim
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
IbtissameAbbad1
 
Visual studio
Visual studioVisual studio
Visual studioISIG
 
mis
mismis
misISIG
 
Tp2 matlab
Tp2 matlab Tp2 matlab
Tp2 matlab
Wajdi Ben Helal
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++
Lilia Sfaxi
 
Université des langages scala
Université des langages   scalaUniversité des langages   scala
Université des langages scala
Fabrice Sznajderman
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)DriNox NordisTe
 
Introduction a la compilation Analyse Syntaxique - C3
Introduction a la compilation  Analyse Syntaxique - C3Introduction a la compilation  Analyse Syntaxique - C3
Introduction a la compilation Analyse Syntaxique - C3
Beligh HAMDI
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
ECAM Brussels Engineering School
 
Ch5-les tableaux et les pointeurs.pdf
Ch5-les tableaux et les pointeurs.pdfCh5-les tableaux et les pointeurs.pdf
Ch5-les tableaux et les pointeurs.pdf
FadouaBouafifSamoud
 
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
MSDEVMTL
 
Initiation r
Initiation rInitiation r

Similaire à Aide mémoire de caml (20)

resume algo 2023.pdf
resume algo 2023.pdfresume algo 2023.pdf
resume algo 2023.pdf
 
RCarte_Commandes-R.pdf
RCarte_Commandes-R.pdfRCarte_Commandes-R.pdf
RCarte_Commandes-R.pdf
 
cours python Chapitre 3- Les types de base.pptx
cours python Chapitre 3- Les types de base.pptxcours python Chapitre 3- Les types de base.pptx
cours python Chapitre 3- Les types de base.pptx
 
Python avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de donnéesPython avancé : Ensemble, dictionnaire et base de données
Python avancé : Ensemble, dictionnaire et base de données
 
cours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'applicationcours lanagage c avec des exemples d'application
cours lanagage c avec des exemples d'application
 
Introduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El HassaniIntroduction à Python - Achraf Kacimi El Hassani
Introduction à Python - Achraf Kacimi El Hassani
 
De java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvementsDe java à swift en 2 temps trois mouvements
De java à swift en 2 temps trois mouvements
 
langage C++
langage C++langage C++
langage C++
 
COURS_PYTHON_22.ppt
COURS_PYTHON_22.pptCOURS_PYTHON_22.ppt
COURS_PYTHON_22.ppt
 
Visual studio
Visual studioVisual studio
Visual studio
 
mis
mismis
mis
 
Tp2 matlab
Tp2 matlab Tp2 matlab
Tp2 matlab
 
Chp6 - De UML vers C++
Chp6 - De UML vers C++Chp6 - De UML vers C++
Chp6 - De UML vers C++
 
Université des langages scala
Université des langages   scalaUniversité des langages   scala
Université des langages scala
 
Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)Algorithmique seconde (corrigés et commentaires)
Algorithmique seconde (corrigés et commentaires)
 
Introduction a la compilation Analyse Syntaxique - C3
Introduction a la compilation  Analyse Syntaxique - C3Introduction a la compilation  Analyse Syntaxique - C3
Introduction a la compilation Analyse Syntaxique - C3
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Ch5-les tableaux et les pointeurs.pdf
Ch5-les tableaux et les pointeurs.pdfCh5-les tableaux et les pointeurs.pdf
Ch5-les tableaux et les pointeurs.pdf
 
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
Kevin Olivier Avignon: Une introduction à la pensée fonctionnelle avec F#
 
Initiation r
Initiation rInitiation r
Initiation r
 

Plus de zan

Gnu linux advanced administration arabic
Gnu linux advanced administration arabicGnu linux advanced administration arabic
Gnu linux advanced administration arabic
zan
 
Apprendre python3 arab
Apprendre python3 arabApprendre python3 arab
Apprendre python3 arab
zan
 
Scilabisnotnaive
ScilabisnotnaiveScilabisnotnaive
Scilabisnotnaive
zan
 
Guide scilab
Guide scilabGuide scilab
Guide scilab
zan
 
Caml intro
Caml introCaml intro
Caml intro
zan
 
Blue j
Blue jBlue j
Blue j
zan
 
Cours c#
Cours c#Cours c#
Cours c#
zan
 
Fonctionnement d'un reseau
Fonctionnement d'un reseauFonctionnement d'un reseau
Fonctionnement d'un reseau
zan
 
Audit
AuditAudit
Audit
zan
 
Php mysql cours
Php mysql coursPhp mysql cours
Php mysql cours
zan
 
Architecture
ArchitectureArchitecture
Architecturezan
 
77232345 cours-ip-mobile
77232345 cours-ip-mobile77232345 cours-ip-mobile
77232345 cours-ip-mobile
zan
 
Réseaux
RéseauxRéseaux
Réseauxzan
 

Plus de zan (13)

Gnu linux advanced administration arabic
Gnu linux advanced administration arabicGnu linux advanced administration arabic
Gnu linux advanced administration arabic
 
Apprendre python3 arab
Apprendre python3 arabApprendre python3 arab
Apprendre python3 arab
 
Scilabisnotnaive
ScilabisnotnaiveScilabisnotnaive
Scilabisnotnaive
 
Guide scilab
Guide scilabGuide scilab
Guide scilab
 
Caml intro
Caml introCaml intro
Caml intro
 
Blue j
Blue jBlue j
Blue j
 
Cours c#
Cours c#Cours c#
Cours c#
 
Fonctionnement d'un reseau
Fonctionnement d'un reseauFonctionnement d'un reseau
Fonctionnement d'un reseau
 
Audit
AuditAudit
Audit
 
Php mysql cours
Php mysql coursPhp mysql cours
Php mysql cours
 
Architecture
ArchitectureArchitecture
Architecture
 
77232345 cours-ip-mobile
77232345 cours-ip-mobile77232345 cours-ip-mobile
77232345 cours-ip-mobile
 
Réseaux
RéseauxRéseaux
Réseaux
 

Dernier

Alternative - Complément au Tramway et 3 ème lien de la ville de Quebec (PDF)
Alternative - Complément au Tramway  et 3 ème lien de la ville de Quebec (PDF)Alternative - Complément au Tramway  et 3 ème lien de la ville de Quebec (PDF)
Alternative - Complément au Tramway et 3 ème lien de la ville de Quebec (PDF)
Daniel Bedard
 
02_UMT STAR_un nouveau biomarqueur de résilience basé sur les métabolites du ...
02_UMT STAR_un nouveau biomarqueur de résilience basé sur les métabolites du ...02_UMT STAR_un nouveau biomarqueur de résilience basé sur les métabolites du ...
02_UMT STAR_un nouveau biomarqueur de résilience basé sur les métabolites du ...
Institut de l'Elevage - Idele
 
01_UMT STAR_étude de la résilience et des compromis entre résilience et effic...
01_UMT STAR_étude de la résilience et des compromis entre résilience et effic...01_UMT STAR_étude de la résilience et des compromis entre résilience et effic...
01_UMT STAR_étude de la résilience et des compromis entre résilience et effic...
Institut de l'Elevage - Idele
 
Note Agro-climatique et prairies n°4 - Juin 2024
Note Agro-climatique et prairies n°4 - Juin 2024Note Agro-climatique et prairies n°4 - Juin 2024
Note Agro-climatique et prairies n°4 - Juin 2024
idelewebmestre
 
03_UMT STAR_compromis entre résistance au parasitisme et efficience alimentai...
03_UMT STAR_compromis entre résistance au parasitisme et efficience alimentai...03_UMT STAR_compromis entre résistance au parasitisme et efficience alimentai...
03_UMT STAR_compromis entre résistance au parasitisme et efficience alimentai...
Institut de l'Elevage - Idele
 
PROVINLAIT - Bâtiment et bien-être estival
PROVINLAIT - Bâtiment et bien-être estivalPROVINLAIT - Bâtiment et bien-être estival
PROVINLAIT - Bâtiment et bien-être estival
idelewebmestre
 
Rénovation des prairies sans labour est-ce possible en bio.pdf
Rénovation des prairies sans labour est-ce possible en bio.pdfRénovation des prairies sans labour est-ce possible en bio.pdf
Rénovation des prairies sans labour est-ce possible en bio.pdf
idelewebmestre
 
05_UMT STAR_Vers une indexation de la longévité fonctionnelle en ovin lait
05_UMT STAR_Vers une indexation de la longévité fonctionnelle en ovin lait05_UMT STAR_Vers une indexation de la longévité fonctionnelle en ovin lait
05_UMT STAR_Vers une indexation de la longévité fonctionnelle en ovin lait
Institut de l'Elevage - Idele
 
QCM de révision pour la haute qualité.pdf
QCM de révision pour la haute qualité.pdfQCM de révision pour la haute qualité.pdf
QCM de révision pour la haute qualité.pdf
ffffourissou
 
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Alternative - Complément  au Tramway et 3ème lien de la ville de Québec  Alternative - Complément  au Tramway et 3ème lien de la ville de Québec
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Daniel Bedard
 
04_UMT STAR_Étude de nouveaux caractères en lien avec la santé et le bien-êtr...
04_UMT STAR_Étude de nouveaux caractères en lien avec la santé et le bien-êtr...04_UMT STAR_Étude de nouveaux caractères en lien avec la santé et le bien-êtr...
04_UMT STAR_Étude de nouveaux caractères en lien avec la santé et le bien-êtr...
Institut de l'Elevage - Idele
 

Dernier (11)

Alternative - Complément au Tramway et 3 ème lien de la ville de Quebec (PDF)
Alternative - Complément au Tramway  et 3 ème lien de la ville de Quebec (PDF)Alternative - Complément au Tramway  et 3 ème lien de la ville de Quebec (PDF)
Alternative - Complément au Tramway et 3 ème lien de la ville de Quebec (PDF)
 
02_UMT STAR_un nouveau biomarqueur de résilience basé sur les métabolites du ...
02_UMT STAR_un nouveau biomarqueur de résilience basé sur les métabolites du ...02_UMT STAR_un nouveau biomarqueur de résilience basé sur les métabolites du ...
02_UMT STAR_un nouveau biomarqueur de résilience basé sur les métabolites du ...
 
01_UMT STAR_étude de la résilience et des compromis entre résilience et effic...
01_UMT STAR_étude de la résilience et des compromis entre résilience et effic...01_UMT STAR_étude de la résilience et des compromis entre résilience et effic...
01_UMT STAR_étude de la résilience et des compromis entre résilience et effic...
 
Note Agro-climatique et prairies n°4 - Juin 2024
Note Agro-climatique et prairies n°4 - Juin 2024Note Agro-climatique et prairies n°4 - Juin 2024
Note Agro-climatique et prairies n°4 - Juin 2024
 
03_UMT STAR_compromis entre résistance au parasitisme et efficience alimentai...
03_UMT STAR_compromis entre résistance au parasitisme et efficience alimentai...03_UMT STAR_compromis entre résistance au parasitisme et efficience alimentai...
03_UMT STAR_compromis entre résistance au parasitisme et efficience alimentai...
 
PROVINLAIT - Bâtiment et bien-être estival
PROVINLAIT - Bâtiment et bien-être estivalPROVINLAIT - Bâtiment et bien-être estival
PROVINLAIT - Bâtiment et bien-être estival
 
Rénovation des prairies sans labour est-ce possible en bio.pdf
Rénovation des prairies sans labour est-ce possible en bio.pdfRénovation des prairies sans labour est-ce possible en bio.pdf
Rénovation des prairies sans labour est-ce possible en bio.pdf
 
05_UMT STAR_Vers une indexation de la longévité fonctionnelle en ovin lait
05_UMT STAR_Vers une indexation de la longévité fonctionnelle en ovin lait05_UMT STAR_Vers une indexation de la longévité fonctionnelle en ovin lait
05_UMT STAR_Vers une indexation de la longévité fonctionnelle en ovin lait
 
QCM de révision pour la haute qualité.pdf
QCM de révision pour la haute qualité.pdfQCM de révision pour la haute qualité.pdf
QCM de révision pour la haute qualité.pdf
 
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
Alternative - Complément  au Tramway et 3ème lien de la ville de Québec  Alternative - Complément  au Tramway et 3ème lien de la ville de Québec
Alternative - Complément au Tramway et 3ème lien de la ville de Québec
 
04_UMT STAR_Étude de nouveaux caractères en lien avec la santé et le bien-êtr...
04_UMT STAR_Étude de nouveaux caractères en lien avec la santé et le bien-êtr...04_UMT STAR_Étude de nouveaux caractères en lien avec la santé et le bien-êtr...
04_UMT STAR_Étude de nouveaux caractères en lien avec la santé et le bien-êtr...
 

Aide mémoire de caml

  • 1. Aide-mémoire de CAML Déclarations et instructions Commentaires : (* commentaire *) définition d’une valeur : let identificateur = expression " récursive : let rec identificateur = expression " locale : let identificateur = valeur in expression expression where v = valeur " parallèles : let id1 = val1 and id2 = val2 " successives : let id1 = val1in let id1 = val2 référence ou variable modifiable : let ident. = ref(val.) valeur d’une référence : ! identificateur modification d’une référence :. Identificateur := valeur fonction sans argument : let identificateur() = ... " à un argument : let identificateur x = ... " à n arguments : let identificateur x1 .. xn = ... ne rien faire : () expression conditionnelle : if test then expression_vrai else expression_faux choix multiple : match valeur with | motif_1 -> expr._1 | motif_2 -> expr._2 ... | motif_n -> expr._n | _ -> expr._par_défaut calculs en séquence : begin exp1; expr2 ; … end (exp1; expr2 ; … ) boucle croissante : for i = début To fin do expression done " décroissante : for i = début downto fin do expression done " conditionnelle : while condition do expression done déclencher une exception : failwith "message" Expressions booléennes vrai, faux : true false et, ou, non : & / && or / || not comparaison : < <= = <> >= > booléen → chaîne : string_of_bool chaîne → booléen : bool_of_string Expressions entières opérations arithmétiques :.+, , *, / modulo : mod valeur absolue : abs entier précédent, suivant : pred, succ minimum et maximum : min a b, max a b entier → chaîne : string_of_int chaîne → entier : int_of_string entier aléatoire entre 0 et n 1 : random__int(n) Expressions réelles opérations arithmétiques : +. -. *. /. puissance : ** / **. minimum et maximum : min a b, max a b fonctions mathématiques : abs_float, exp, log, sqrt, sin, cos, tan, sinh, cosh, tanh, asin, acos, atan réel → chaîne : string_of_float réel → entier : int_of_float chaîne → réel : float_of_string entier → réel : float_of_int réel aléatoire entre 0 et a : random float(a) Expressions rationnelles utiliser les rationnels : #open "num" opérations arithmétiques : +/, /, */, //, **/ minus_num, quo_num, mod_num, square_num comparaison : </, <=/, =/, <>/, >=/, >/ minimum et maximum : min_num a b, max_num a b valeur absolue : abs_num numérateur, dénominateur : numerator_num, denominator_num simplifier une fraction : normalize_num partie entière : floor_num round_num ceiling_num rationnel → chaîne : string_of_num rationnel → entier : int_of_num rationnel → réel : float_of_num chaîne → rationnel : num_of_string entier → rationnel : num_of_int réel → rationnel : num_of_float Listes liste : [elt_1; elt_2; ... ] liste vide : [ ] tête et queue : hd, tl / tête :: queue longueur d’une liste : list_length
  • 2. concaténation : @ image miroir : rev appliquer une fonction : . map fonction liste itérer un traitement : do_list traitement liste test d’appartenance : mem élément liste test de présence : exists prédicat liste for_all prédicat liste recherche d’un élément : index élément liste vecteur → liste : list_of_vect liste → vecteur : vect_of_list opérations ensemblistes : union, intersect, subtract tri : sort__sort ordre liste itérer une fonction : → it_list fonction a liste ex : it_list f a [x; y; z] f (f (f a x) y) z → list_it fonction liste a ex : list_it f [x; y; z] a f x (f y (f z a)) Vecteurs vecteur : [|elt_1; elt_2; ...|] vecteur vide : [| |] i-ème élément : identificateur.(indice) modification : identificateur.(i) <- valeur longueur d’un vecteur : vect_length création d’un vecteur : make_vect longueur valeur création d’une matrice : make_matrix n p valeur extraction : sub_vect vecteur début longueur concaténation : concat_vect copie : copy_vect appliquer une fonction : map_vect fonction vecteur itérer un traitement : do_vect traitement vecteur vecteur → liste : list_of_vect liste → vecteur : vect_of_list Chaînes de caractères caractère : ‘caractère‘ chaîne de caractères : "chaîne" i-ème caractère : identificateur.[indice] modification : identificateur.[indice] <- caractère longueur d’une chaîne : string_length création : make_string longueur caractère caractère → chaîne : make_string caractère extraction : sub_string chaîne début longueur concaténation : ch1^ch2 / concat[ch1; ch2; ...] Graphisme utiliser le graphisme : #open "graphics" initialiser la fenêtre graphique : open_graph "" refermer la fenêtre : close_graph() effacer la fenêtre : clear_graph() position du crayon : current_point() changer la couleur du crayon : set_color couleur couleurs : rgb r g b black, white, red, green, blue, yellow, cyan, magenta changer l’épaisseur du crayon : set_line_width épaisseur tracer un point : plot x y déplacer, crayon levé : moveto x y crayon baissé : lineto x y tracer un cercle : draw_circle x y rayon écrire un texte : draw_string "texte" peindre un rectangle : fill_rect x y largeur hauteur un polygone : fill_poly [|(x0,y0);(x1,y1); ... |] un disque : fill_circle x y rayon attendre un événement : read_key() wait_next_event [ev1; ev2; ...] Entrées-sorties au terminal impression de valeurs : print_int, print_float, print_char, print_string print_endline changer de ligne : print_newline() lecture de valeurs : read_int, read_float, read_line Entrées-sorties dans un fichier ouverture en lecture : let canal = open_in "nom" en écriture : let canal = open_out "nom" lecture : input_char, input_line, input_byte, input_value écriture : flush, output_char, output_string, output_byte, output_value fermeture : close_in, close_out Commande de l’interpréteur tracer une fonction : trace "fonction" ne plus tracer une fonction : untrace "fonction" utiliser une fonction d’impression : install_printer "fonction" ne plus l’utiliser : remove_printer "fonction" charger un fichier source : load "nom", include "nom" charger un module compilé : load_object "nom" nom complètement qualifié : module__nom utiliser les noms courts d’un module : #open "module" ne plus les utiliser : #close "module" ajouter un répertoire de recherche : directory "chemin" quitter l’interpréteur : quit()