y = p2.y - p1.y } in roznica.x * roznica.x + roznica.y * roznica.y (* Definicja instancji drzewa *) let drzewo = Drzewo (Drzewo (Lisc 1, Lisc 2), Lisc 3) (* Lista *) let lista_int = [1;2;3;4;5;6] (* Rekord *) let punkt = { x = 1.; y = 2. } (* Polimorficzny rekord *) let nazwana_para = { first = 1.0; second = "Ala ma kota" } let nazwana_para = { first = [1;2;3]; second = 42 }
int Czyli liczby całkowite. Operacje na nich to m.in. +, -, *, /.
let x = 2 + 2 * 2;; print_int x;;
float Liczby zmiennoprzecinkowe mają osobny zestaw operacji, co zmniejsza znacznie czytelność, ale jest konieczne ze względu na sposób działania systemu inferencji typów.
Operacje te zwykle kończą się kropką, np. +., -., *., /..
let y = 2.0 +. 2.0 *. 2.0;; print_float y;;
char Pojedyncze znaki umieszcza się w pojedynczym cudzysłowie:
let c = '\n';; print_char c;;
Do zamieniania znaków na ich wartości numeryczne i na odwrót służą int_of_char oraz char_of_int.
string Łańcuchy tekstowe umieszcza się w podwójnym cudzysłowie:
let s = "Ala ma kota\n";; print_string s;;
bool Wartości logiczne – true i false. Operacje to not, ||, && itd.
unit Typ pusty, wartość tylko ().
Oraz na typach pochodnych takich jak: