Syntax for Naming Functions
In Retro (with its Forth roots), a function definition is setup like this:
: name .... code .... ;
The : function parses for a name and turns the compiler on. ; turns the compiler off.
In Parable things are different. There's no direct access to the input stream and things are expected to be arguments from the stack. So we take a quote and a name, and : attaches the name to the quote:
[ .... code .... ] 'name' :
In the upcoming 2016.02 release of Parable there's a second form, this time setup opposite. E.g.:
'name' [ .... code .... ] .
From a Forth background, I like : - I already associate it with function creation, and the stack effect is interestingly reversed from a normal Forth approach. But I see some value in the . form as well: it may be more readable in cases where a lot of functions are being created and reads somewhat like a phrase.
For the forseeable future both forms will be supported. If you have a preference, please contact me (email or twitter preferred).