Wrapl is a dynamic programming language designed for various programming tasks including rapid prototyping, scripts and GUI application development.
The key features in Wrapl include:
- Object-oriented: Every value in Wrapl is an object with a type which is known at run time. The types form a hierarchy with multiple inheritance.
- Multiple-dispatch: Method dispatch in Wrapl depends on the types and values of all of their arguments.
- Pass-by-reference: Wrapl allows variables to be passed by reference to other functions.
- Functional closures: Functions in Wrapl are first-class objects which may passed to other functions or stored in variables. Functions can both read and write variables declared in surrounding scopes.
- Goal-directed: Every expression in Wrapl can produce 0, 1, or more values. An expression which can produce more than 1 value may be resumed to produce its next value.