Comments
Loading Dream Comments...
You must be logged in to write a comment - Log In
Here are a few "syntactically sugared" expressions, which simplify commonly-used concepts :
x++; is equvalent to x <:: x + 1;
x--; is equivalent to x <:: x - 1;
{message <?< "Hello";} is equivalent to {message << "Hello"; {? message ?};}
i.e. send message and wait for it to be received
{message =>?> input;} is equivalent to { {? message ?}; message =>> input;}
i.e.wait for there to be a message and then read it;
array ! 1; is roughly the same as array[1];
except the "bang" form is usually used with structs and field names (constant indices)
functionname <:: { (foo=1, bar=2, squee=3); .... } is equivalent to functionname <:: { foo <:: 1; bar <:: 2, squee <:: 3; ....}
as they both declare local variables for use in "functionname", but the first form declares them as a struct (like a COBOL level 01) whereas the second form declares them individually (like a series of COBOL level 77's)
There are many other flavours of syntactic sugar in ::SHE+ILA::, for example {* condition : loopbody *}; which avoids the uses of "goto's" and makes code easier to read, and // this is a comment; which is only displayed at edit/list time, and skipped at runtime.