Parable has a single, global dictionary which requires unique names for each function. This is ok, but it's sometimes useful to have finer control over things.
The first tool is a lexical scope, allowing for internal factors to be hidden. This is pretty simple:
When the closing *}* is encountered, Parable hides everything except for the names in the initial quotation.
This is really handy, but sometimes it's useful to have even more control. Perhaps we'd like to group a bunch of functions, and selectively make them visible or hidden. This requires something more: a system of vocabularies.
In 2016.03 this will be added to Parable. I'm still working on the syntax, but for now it's like this:
"Group a bunch of math functions into a vocabulary named math"
[ 'sin' 'tan' 'cos' 'asin' 'atan' 'acos' \
'atan2' 'log' 'log10' 'log<n>' \
'floor' 'min' 'max' \
] 'math' vocab
After *vocab* creates the vocabulary the names are hidden from the dictionary. They can be exposed or hidden using *with* and *without*:
&math with
"do something using the math functions"
&math without
Going a tiny bit further, it's also useful to create a vocabulary for a lexically scoped area. This is doable by extending the syntax a little: