|
utop
|
The integer type `int` can contain numbers from -4611686018427387904 to 4611686018427387903.
|
utop # 1 + 1;;
- : int = 2
|
The `float` type uses different symbols for operations: `+.`, `-.`, etc.
|
utop # 1.3 +. 2.5;;
- : float = 3.8
|
Bitwise operations can be performed using `lsl` (shift left), `lxor` (XOR), `land` (AND), etc.
|
utop # 1 lsl 3;;
- : int = 8
|
Comparing numbers can be done using `>`, `<`, and `<>` for inequality.
|
utop # 3 > 5;;
- : bool = false
|
Strings can be concatenated using the `^` operator.
|
utop # "hello" ^ " world";;
- : string = "hello world"
|
Variables can be declared via the `let` keyword.
|
utop # let a = 1;;
val a : int = 1
|
Functions are like variables, except that they take arguments specified after the name of the function and before the `=`. The last statement is automatically returned (no need to write `return`).
|
utop # let add_one i = i + 1;;
val add_one : int -> int = <fun>
utop # let a' = add_one a;;
val a' : int = 2
|
Operators can be overloaded and different types might define different operators.
|
utop # Int.( * ) 2 3;;
- : int = 6
utop # Int.( = ) 3 5;;
- : bool = false
|
If you see an operator you haven't seen before, you can check what it is on the [operator lookup](https://www.craigfe.io/operator-lookup/) page.
|
|