Some other possible problems:

1: if $condition is an expression with side-effects then your new construct has 
a different meaning then the original code.

2: if the middle part does something that changes the value of  the expression 
$condition then the new construct again has a different meaning.


besides if you really want it just define a macro.


--
Mark Biggar
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]


> Today on #perl6 I complained about the fact that this is always
> inelegant:
> 
>       if ($condition) { pre }
> 
>       unconditional midsection;
> 
>       if ($condition) { post }
> 
> Either you put the condition in a boolean var and check it twice, or
> you use a higher order function and give it three blocks, and the
> conditional. But no matter how much we try, it always feels too
> "manual".
> 
> I asked for some ideas and together with Aankhen we converged on the
> following syntax:
> 
>       if ($condition) {
>               pre;
>       } uncond {
>               middle;
>       } cond {
>               post;
>       }
> 
> s/uncond/<<pause regardless>>.pick/e;
> s/cond/<<resume again>>.pick/e;
> 
> Some restrictions:
> 
> The block structure must always be ternary - for other cases we
> already have enough control flow.
> 
> The if is not the same if that can cuddle with else - it's either
> or.
> 
> Does anybody have any comments, or synonyms for the control
> structure naming?
> 
> BTW, I expect readability to be optimal with 1-2 lines of pre/post,
> and 1-5 lines of middle. Any observations?
> 
> -- 
>  ()  Yuval Kogman <[EMAIL PROTECTED]> 0xEBD27418  perl hacker &
>  /\  kung foo master: /me groks YAML like the grasshopper: neeyah!!!!!!
> 
> 

--- Begin Message ---

Attachment: pgpC3zhriMFzT.pgp
Description: PGP signature


--- End Message ---

Reply via email to