Basics:
unit
literal: Unit
bool
literal: False
or True
- conditional expression:
if b then e1 else e2 end
(note that as opposed to OCaml, the closing end
is mandatory)
- literal function:
fun x -> e1
- apply a function to an expression:
f x
- bind an identifier to an expression:
let x = e1 in e2
- syntactic sugar to bind a function with many arguments:
let f x y z = e1 in e2
- you can use parentheses:
f (g (h x))
- custom type:
let type t =
| Hello
| Goodbye
in fun x -> match x
| Hello -> True
| Goodbye -> False
end