Given how easy chained relational ops make explicit range checking
with endpoints, e.g.

$a <= $x <= $b

Imd be perfectly happy with a Range smartmatching only the elements
that you get out of the RangeIterator.

On 8/27/09, smuj <> wrote:
> TSa wrote:
>> HaloO,
>> David Green wrote:
>>> For certain discrete ordered types, like Int, both ways work out the
>>> same, and since Ints are the most common and most obvious use for
>>> Ranges, it's easy to overlook the confusion.  The case with strings is
>>> a good example: it really doesn't make sense that a value not produced
>>> by a range nevertheless lies between its endpoints.  Why not have a
>>> separate Interval type?
>> I see no problem when a Range matches for values which are not produced
>> by a RangeIterator. I expect 2.5 ~~ 1..5 to be true even though 2.5 is
>> not in 1,2,3,4,5.
> I suspect that the double meaning of Ranges is going to confuse some
> people and bite others. If things stay as they are, I hope that the use
> of :by will be flagged as a syntax error if used in literal Range smart
> matching. Of course, that doesn't help the unsuspecting when variables
> are being used, ala 2.5 ~~ $myrange.
> (For the record, 2.5 ~~ '!'..5 is also true on my system, although I
> don't know why! I certainly wouldn't expect it though :)
>> The same applies for 'aaa' ~~ 'aa'..'az'. I find this
>> quite natural.
> Not sure if you're saying that's something you'd like or if you think
> that that's something already there. It doesn't match for me using
> recent(ish) Rakudo. Of course, that could just be me! :)
> I'd personally prefer it if Ranges just did lists, including when smart
> matching, but had an interval method or such like for explicit matching
> against the endpoints, e.g.
> 2.5 ~~ interval(1..5)   # or
> 2.5 ~~ $myrange.interval
> I'm new in town though, so I'll happily admit that I don't know the full
> implications of such a change. Having context-insensitive Ranges DWIM's
> better to me, but DWIMery, like beauty, is clearly in the eye of the
> beholder! :)
> Cheers,
> --
> smuj

Sent from my mobile device

Mark J. Reed <>

Reply via email to