Em Seg, 2009-08-24 às 23:50 +0200, Michael Zedeler escreveu:
> The most elegant solution would be if the data types themselves 
> indicated their capabilities.

One thing I think you missed entirely is the fact that the infix:<..>
operator is a multi sub, so it falls to regular dispatch semantics, in a
way that any new class can export its own version of it with the desired
semantics...

> my $range = 1.14 .. 1.82 :by {* + 0.01};

Including mandatory named arguments...

> Another option is to provide a completely different operator for 
> constructing Intervals.

The other thing you're missing is that Range is a role, not a class,
which means that any type can behave like a range even if it provides a
completely different behavior, which might include

method list {
  fail "This type of Range cannot be used as a list..."
}

daniel

Reply via email to