Comments
Loading Dream Comments...
You must be logged in to write a comment - Log In
 
    
    
 Artist
                                
                                
                                    Artist
                                        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.