“A scripting language for programming the Ivory System.”

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
No implicit evaluation Full control over when and how evaluation is performed.
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
Multiple environments Native ability to interact with multiple environments
Computer science has two and precisely two problems: the naming of values, and the time at which a value is bound to a name.
— Maurice Wilkes, Cambridge University, c. 1976

Why IvoryScript? A programming tool for both and an expansion of the second: the time at which a value is reduced to a simpler form.