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). -- Mark J. Reed <[EMAIL PROTECTED]>