“A scripting language for programming the Ivory System.”

Designed to support dynamic programming and data storage, IvoryScript provides:

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
Persistence Binary serialisation for all general data types
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.