## 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).