Designed to support efficient dynamic programming and data persistence, IvoryScript offers:
First-class names and types | Efficient handling of dyanamically typed values and binding names |
On-demand data | Separate data types for unevaluated data |
Advanced pattern matching | Unrestricted data representation using constructor and deconstructor functions for advanced pattern matching |
Pragmatic update | Controlled mutability for reference values in an otherwise functional paradigm |
No implicit evaluation | Full control over when and how evaluation is performed. Coercion of expressions terms results in script transformation for reduction and evaluation to match the context |