These are mostly not my ideas (except activate); hopefully not too 
many of them have already been used.  

        In the same list as "last", "next", and "redo", we should also have
-       deeper (works with nest -- cf. II: loop)
-       yield and resume (for co-routines)

        Also useful could be:
activate <blockname>
deactivate <blockname>

        Useful for optimising:
---------------------------------------
$first = 1;
foreach (@example) {
        if($first) {
                do_something;
                $first = 0;
        } else {
                do_normal_stuff;
        }
}
---------------------------------------

Can be done as:

---------------------------------------

LABEL: foreach(@example) {
        OTHEREXAMPLE: {
                do_something;
                deactivate OTHEREXAMPLE;
                next LABEL;
        }
        do_normal_stuff;
}

---------------------------------------

        In the example above, the code could modify itself so that 
OTHEREXAMPLE would not get used at all after the first time (just have an 
appropriate assembly jump or something).  

        Anyway, that pretty much covers my ideas on Control Structures.  

        :)

---------------------------------------------------------------------
| Name: Tim Nelson                 | Because the Creator is,        |
| E-mail: [EMAIL PROTECTED] | I am                           |
---------------------------------------------------------------------

----BEGIN GEEK CODE BLOCK----
Version 3.1
GCS d? s: a-- C++>++++$ US+ P++ L++ E- W+++ N+ w+> M-- V- Y+>++ 
PGP->++ R(+) !tv B++ DI++++ D+ G e>++ h!/* y-
-----END GEEK CODE BLOCK-----


Reply via email to