1 # minfp: a minimal pure lazy functional language
3 `minfp` is a functional programming language that aims to be as small as
4 possible while still being feature rich.
5 Most of the code is taken up by type checking.
29 - Polymorphic type inference for the Hindley-Milner type system
30 - Support for let polymorfism
31 - Reasonable interpreter
37 function := (op+ ['infixr' | 'infixl'] digit+ | id) id* '=' expr ';'
47 op := '!' | '|' | '@' | '#' | '$' | '%' | '^' | '&' | '*' | '=' | '+'
48 | '/' | '?' | '-' | '_' | '|' | ''' | '"' | '\' | ''' | '<' | '>'
50 alpha := a | b | .. | z | A | B | .. | Z
51 digit := 0 | 1 | .. | 9
52 alnum := alpha | digit
55 A program always has to have a `start` function that takes no arguments.
59 See `builtin.icl` for all builtin instructions that you can use with `code`