develooper Front page | perl.perl6.language | Postings from September 2005

conditional wrapper blocks

Thread Next
From:
Yuval Kogman
Date:
September 20, 2005 10:33
Subject:
conditional wrapper blocks
Message ID:
20050920173315.GE5797@woobling.org
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 <nothingmuch@woobling.org> 0xEBD27418  perl hacker &
 /\  kung foo master: /me groks YAML like the grasshopper: neeyah!!!!!!


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About