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 |