miniml
[source] [example]An implementation of an eager statically typed functional language with a compiler and an abstract machine.
The language has the following constructs:
- Integers with arithmetic operations
+
,-
and*
. (There is no division because the language has no exceptions.) - Booleans with conditional statement and comparison of integers
=
and<
. -
Recursive functions and function application. The expression
fun f (x : t) : s is e
denotes a function of type
t -> s
which mapsx
toe
. Ine
the function refers to itself asf
. -
Toplevel definitions
let x = e
There are no local definitions.
Example interaction, see also the file example.miniml
:
MiniML. Press Ctrl-D to exit.
MiniML> 3 + (if 5 < 6 then 10 else 100) ;;
- : int = 13
MiniML> let x = 14 ;;
x : int = 14
MiniML> let fact = fun f (n : int) : int is if n = 0 then 1 else n * f (n-1) ;;
fact : int -> int = <fun>
MiniML> fact 10 ;;
- : int = 3628800
MiniML>
Good bye.