David Christensen writes: > Hypothetical here: > > If we want to calculate a set of values for a junction which map nicely > to a range with a few outliers, would it be possibly to have a > qualifier :except which allows us to make exceptions to our given > range? I.e., > > (Ignore for the moment the inefficiency of the choice of this > particular algorithm.) > > my $year = 1900; # or whatever > > my $leap_year = $year % 400 == any(0..400 :by(4) :except(100,200,300)); > > Here except would be a modifier on the range being generated for any(). > I could also see except being used to "strip choices" from junctions: > > my $j = 1|2|3|4; > my $k=$j :except(2); # 1|3|4 > > Let me know if I'm totally abusing junctions here...
No, you're abusing adverbs. You can't give an adverb to a variable (because adverbs don't modify actually nouns :-). I don't know if we've destroyed Damian's comparator semantic, but if not, then you can just do: my $k = ($j != 2); But if that no longer happens, it's best a method on the junction. Except every time we add a method to junction, we destroy the ability to automatically thread that method over the junction. I've proposed several solutions to this over the years (applying to autodelegating iterators as well). I still think it's something that that needs to be solved. Luke