On Tue, Feb 24, 2009 at 1:39 PM, Daniel Ruoso <dan...@ruoso.com> wrote:
> Em Ter, 2009-02-24 às 13:34 -0800, Jon Lang escreveu:
>> Daniel Ruoso wrote:
>> > if $y ~~ [..] $x ± $epsilon {...}
>> Junctions should not return individual values in list context,
>
> It is not the junction that is returning the individual values, but the
> infix:<±> operator...

## Advertising

Hmm... true point. Thinking through it some more, I'm reminded of an
early proposal to do something similar with square roots in
particular, and with non-integer exponents in general. e.g., "sqrt(4)
=== ±2". IIRC, the decision was made that such a capability would
work best as part of an advanced math-oriented module, and that things
should be arranged such that sqrt($x).[0] in that advanced module
would be equivalent to sqrt($x) in Perl's default setting. That would
mean that sqrt(4) would have to produce (+2, -2) in list context,
rather than (-2, +2) - which, in turn, would mean that ±2 should do
likewise. And however prefix:<±> works, infix:<±> should follow suit,
returning addition first and subtraction second.
Which would further mean that you should use the reversal metaoperator as well:
if $y ~~ [R..] $x ± $epsilon {...}
--
Jonathan "Dataweaver" Lang