CJavaPythonOCamlJavaScriptPHP
Structures de contrôle
Structure conditionnelleif(expr) expr;if(bool) expr;if(bool): expr;if bool then expr;if(expr) expr;if(expr) expr;
Structure bloc conditionnelif(expr) {}if(bool) {}if(bool): \n\tif bool then begin ... endif(expr) {}if(expr) {}
Opérateur ternaire
Structure ternaire
?
expr ? trueExpr : falseExpr;
?
bool ? trueExpr : falseExpr;

trueExpr if bool else falseExpr;

?
expr ? trueExpr : falseExpr;
?
expr ? trueExpr : falseExpr;
Whilewhile(expr) {}while(bool) {}while bool: \n \twhile bool do
...
done;;
while(expr) {}while(expr) {}
Forfor(exprStart;exprCheck;exprEnd) {}for(exprStart;bool;exprEnd) {}
for var to endvalue do
...
done;;
for(exprStart;exprCheck;exprEnd) {}for(exprStart;exprCheck;exprEnd) {}
ForEach
for(item : collection) {}for item in collection: \n \t
for(item of collection) {}foreach(collection as item) {}
Définition de variables
Typage
Variables
type nom = valeur;

Impératives
type nom = valeur;

Impératives
nom = valeur;

Impératives
let nom = valeur;

"Fonctionnelles"
[let (local bloc) var (local fonction) -- (global)] nom = valeur;
Impératives
$nom = valeur;

Impératives
Type nul / Expression nullevoid / NULLvoid / nullunit / unit / null / NULL
Préfixes numériques
Hexadécimal
Octal
Binaire
OUI
0x
0
0b
OUI
0x
0
0b
OUI
0x
0o
0b
OUI
0x
0o
0b
OUI
0x
0o
0b
OUI
0x
0
0b
Pointeurstype* nom = addresse;let nom = ref valeur;
Opérateur déréférencement*, [0]!
Modification valeur pointeurPar déréférencement et affectationnom := valeur
Opérateurs
Opérateur de test physique
Opérateur de test sémantique
Opérateur différent physique
Opérateur différent sémantique
==

!=

==

!=

==

!=

==
=
!=
<>
==
===
!=
!==
==
===
!=
!==
Opérateurs bit-à-bit
NON
ET
OU
OU EXCLUSIF
Décalage droite
Décalage gauche
OUI
~
&
|
^
>>
<<
OUI
~
&
|
^
>>
<<
OUI
~
&
|
^
>>
<<
lnot
land
lor
lsr
lsl
OUI
~
&
|
^
>>
<<
OUI
~
&
|
^
>>
<<
Opérateurs logiques
NON
ET
OU
OUI
!
&&
||
OUI
!
&&
||
OUI
not
and
or
OUI
not
&&, and
||, or
OUI
!
&&
||
OUI
!
&&, and
||, or
Structures de données natives
Tableaux
Affectation directe
Autre affectation
Déréférencement tableau
Affectation tableau
Allocation
Type tableau
type nom[n_1]...[n_m];
type nom[] = {elems};
type nom[] = addr;
*(T+offset), T[offset]

Par déréférencement
Pile, Tas, Raw
Pointeur
type nom[n_1]...[n_m];
type nom[] = {elems};
type[n_1]...[n_m] nom;
T[offset]

Par déréférencement
Pile, Tas, Raw?
Tableau
NONArray.make n nullElem
let v = [|elem0;elem1|];;
Array.init n function
nom.(offset)
nom.(offset) <- elem

array
Listes (chainées)
Liste vide
Concaténation
Ajout d'éléments
Accès à un élément
Accès à la tête
Accès à la queue
NONNON (bibliothèque standard)OUI
[]
L1+L2 (O(n²))
L.append(elem)
L[i] (O(i))
L[0]
L[1::]
OUI
[]
L1@L2 (O(n²))
elem::L
List.nth L i (O(i))
hd(L)
tl(L)
Uplets
Types construitstypedef struct NOM
{
 type param0;
} nom_t;
Objets uniquementObjets uniquementtype nom = {param0 : type;};;
Énumérationsenum nom {valeur0, valeur1};enum nom {valeur0, valeur1;};Par objets : héritagetype nom = valeur0 | valeur1;;
Objets
Bibliothèque standard