Porównanie Ocamla i SML-a
Z Wikipedii
Ocaml i SML to bardzo podobne języki - można by nawet powiedzieć dialekty jednego języka - dlatego programista znający jeden z nich szybko nauczy się sprawnie posługiwać drugim.
Ocaml | SML | |
---|---|---|
Kolejność ewaluacji argumentów | Od prawej do lewej: | Od lewej do prawej |
let f a b = () f (print_string "a\n") (print_string "b\n") |
|
|
b a |
a b |
|
Podstawowe typy |
"Ala ma kota" 3.14 123 -123 true () (1,"x") [1;2;3] |
"Ala ma kota" 3.14 123 ~123 true () (1,"x") [1,2,3] |
Nazwy typów |
int float bool unit x list x * y |
int real bool unit x list x * y |
Operacje na liczbach całkowitych |
x+y x-y x+y x*y x/y x mod y |
x+y x-y x+y x*y x div y x mod y |
Operacje na liczbach zmiennoprzecinkowych |
x +. y x -. y x *. y x /. y sin x cos x |
x + y x - y x * y x / y Math.sin x Math.cos x |
Operacje na łańcuchach tekstowych |
x ^ y String.sub str start size String.length x |
x ^ y substring(str,start,size) String.size x |
Rozdzielanie wyrażeń | ;; | ; |
print_string "a\n";; print_string "b\n" | print "a\n"; print "b\n" |