On Wed, Dec 3, 2008 at 3:05 PM, Patrick R. Michaud <[EMAIL PROTECTED]> wrote:
>> It does seem like a closure trait sort of thing, but I don't think
>> it's currently provided by the p6 spec.
> Perhaps PRE ... ?

Isn't  PRE { blah; } just short for ENTER { die unless blah; } ?

It still has the problem that it won't get executed if the loop body never is.

>    while (someCondition()) {
>        PRE { doSomething(); }
>        doSomethingElse();
>    }

Might never call doSomething().

> Or, if you wanted to be sure that doSomething() is always called
> at least once:
>    repeat {
>        PRE { doSomething(); }
>        doSomethingElse();
>    } while someCondition();

Calls doSomethingElse() even if someCondition() is initially false
(violates the "gotcha" I mentioned).

Incidentally, I was just trying to clarify what I think Aristotle was
asking for, and am not saying it's needed. I suspect this might be too
specific a case to worry about, and I'm willing to settle for the
solution in my last message (using an if inside a do or loop block).


Reply via email to