From: intc_ctor@... (Phil Tomson) Date: 2004-02-09T06:39:18+09:00 Subject: Re: flip flop operator proposal (from condition to condition do ) Joel VanderWerf wrote in message news:<401FFA2D.40608@path.berkeley.edu>... > Phil Tomson wrote: > > Jamis Buck wrote in message news:<401F1E82.1080008@email.byu.edu>... > > > > Another idea would be to have a 'from (condition) to (condition)' > > statement that looks looks like: > > from l=~/BEGIN/ to l=~/END/ do > > #do something in this range > > end > > > > Then we just need some way to determine if the range is inclusive or > > exclusive... > > from l=~/BEGIN/ to l=~/END/ inclusive do > > puts l > > end > > > > #prints: > > BEGIN > > foo > > bar > > END > > > > from l=~/BEGIN/ to l=~/END/ exclusive do > > puts l > > end > > Very readable! It may be an improvement that the flipflop isn't being > used with if, but with a special keyword. The hidden state bothers me > less that way. Of course you lose the possibility of a condition with > more complex logic. Couldn't you just use the returned FlipFlop object for those purposes? ff = from l=~/BEGIN/ to l=~/END/ #no block passed in then you could do things with ff: if ff.set? #do something else #do something else end The from (condition) to (condition) would just be syntactic sugar for the creation of a FlipFlop object. (kind of like [] is for Array and {} is for Hash, or lamda is for Proc). Come to think of it, couldn't ff be a functional object, kind of like a closure (Proc)? Actually, it's probably more like a set of conditions that a Proc must evaluate when it (the block being passed in to the from .. to .. ) is called. ....just thinking out loud. Should probably try to prototype something that doesn't require any syntax changes. Phil