2.22. Objective Caml

OCaml er et temmelig specielt programmeringssprog, idet det tillader at man blander flere paradigmer end sædvanligt; objektorienteret, imperativt og funktionsorienteret. ...

2.22.1. Nogle løse noter om OCaml

Fra 1987.

Statisk typet, (men) vælger automatisk den mest generelle type (betydning) af et udtryk.

Funktioner er en slags data.

Heltal regnes "modulo" $2^30$ på 32-bit-systemer og modulo $2^62$ på 64-bit-systemer $(2^30-1)+1 = -(2^30)$.

Skelner mellem "strukturel" og "fysisk" lighed ("=" og "=="). Med "fysisk" lighed menes der at det rent faktisk er de samme data, der ligger det samme sted i hukommelsen, mens "strukturel" lighed blot er to forskellige variable der tilfældigvis har samme værdi. Det svarer til om man ser på "A=B" eller "A'Access=B'Access" i Ada.

Underforstået parallelisering i syntaksen:


let navn_1 = udtryk_1 and navn_2 = udtryk_2 and ... ;;
beregnes principielt parallelt.

Prioritet: "f a b" svarer til "(f a) b". Der er desværre mange alternative formuleringsformer. :-(

Bortset fra parametrene evalueres en funktion når den defineres.

Polymorfe funktioner...

Har en flerdimensionel "case"-struktur i form af "match ... with ...".