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.
« This page (revision-1) was last changed on 07-Mar-2009 11:27 by AdrianQuark