“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 dynamically typed values and binding names
On-demand data Separate data types for lazy expression values
No implicit evaluation Full explicit control over when expressions are reduced
Pattern matching Unrestricted data representation using constructor and deconstructor functions
Pragmatic update Controlled mutability through reference values
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.