Version 0.9.5 Released#
Highlights of this release:
SYNTAX#
- New syntactic sugar "x?" and "x:=y" for reference reads and writes.
- Operators can be written in prefix form (or unapplied) using parentheses: "(+)" is equivalent to "lambda (a,b) = a+b".
- New "type" declaration for declaring algebraic data type constructors.
- Any combinator is allowed unparenthesized within if/then/else.
- Allow apostrophe in var names.
- Allow nested comments.
- Newline-sensitivity avoids ambiguity about where expressions end.
SEMANTICS#
- Equality operator "=" now obeys substitutability principle.
- New semantics for semicolon operator: in "a ; b", "b" runs only if "a" fails without publishing any values.
- Java fields can be accessed with the dot operator.
LIBRARY#
- Standard library organized, documented, and expanded with many more useful sites and definitions.
- Experimental support for "doc" tags ala javadoc, translated into docbook syntax by a special parser.
IMPLEMENTATION#
- Enforceable limits on recursive stack depth and logical threads.
- A closure only keeps variables used in the closure live, for garbage collection purposes.
- Definitions are organized into mutually-recursive groups to keep environments small and avoid false depenendencies on futures introduced by the pruning combinator.
Add new attachment
Only authorized users are allowed to upload new attachments.