Supporting functional programming, the ‘pure’ operator
Support for functional programming is now included in DollarScript, this will be widened as the language is developed. For now it is provided by the pure
operator. This signals that an expression or declaration is a pure expression or function.
In this example we’re declaring reverse to be an expression that reverses two values from a supplied array. Because we declare it as pure
the expression supplied must also be pure
. To understand what a pure function is please read the Wikipedia entry. Basically it prohibits the reading of external state or the setting of external state. We next swap [2,1]
within a newly created pure expression, which is subsequently assigned to a
. If reverse had not been declared pure it would not be allowed within the pure expression.
Note some builtin functions are not themselves pure and will trigger parser errors if you attempt to use them in a pure expression. Take DATE()
for example which supplies an external state (the computers clock).