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 edenotes a function of type
t -> swhich mapsxtoe. Inethe function refers to itself asf. -
Toplevel definitions
let x = eThere 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.