case statement:
In place of
if. 0>(*:b)-4*a*c do. 'complex roots' else. 'real roots' end.
I'd write
> (1+*(*:b)-4*a*c) { 'complex';'double';'real'['a b c'=.1 0 _1
There are more extreme examples.
Long case statements are common in shell script argument parsing.
flex & bison write hairy switch statements.
None-the-less, I've haven't written one in many years. In c I use
function tables. By replacing the function table with another the
behavior of the code can be changed, for instance with a debugging
version or pretty printer. In python...GVR won't add case to python,
use a hash of functions instead. This is my particular bias.
for loops
I might not use these if I can finally understand ^:
j whilst
Is the only construct I'm aware of addressing
setup
while test
setup
try/throw/catches
catchd looks like a strong debugging tool. The try. example in the
dictionary shows bad data type. Will try also cause an exception for
out-of-memory?
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm