1. They have variables called slot fillers (Just 2 element nested) First is a list of names, second is an enclosed list of corresponding data items.
Very handy and easy to do in APL+Win. However they have implemented a left arg to pick which if a name in the strand from the disclose of the first element, returns the corresponding element of the second.
(ie) data{gets}('aa' 'bbb' 'cc' 'dddd')(('aaaaaaa') (1 2 3)('aaaa')(3 4{rho}{iota} 12))
'aa'{pick}data returns
'aaaaaa' etc.
They use symbols but this works with nested text. Its a very useful data structure and alot of time is wasted with a fn call to
((1{pick} data){iota}(left arg)) {pick} 2{pick} data
The char left arg is much neater and more efficient.
2. Contexts, or namespaces. Most other languages have them and it would help manage code in a large ws. Even the basic of sub dividing the ws would be better than nothing. i have even tried spitting up the code for a form into a COM but because we can't have the GUI in the main workspace with it interacting with the COM like you can set Excel to you end up spending alot of time communicating event/properties between the APL workspace and the COM object. Contexts would be much neater.