Tangentialy, can I suggest that a nicer synthax might be -Inf..-1 / 1..Inf,
etc.
This assumes that the float synthax will be extended to include "NaN" and
"Inf" as valid floating-point literals. (This does take away from
non-reserved namespace.) Has this been proposed yet?
Assuming that we end up supporting full IEEE floats, this becomes the
"obvious" synthax, and I find C<(-Inf..Inf)> to be far more clear then
C<(..)>. We've got plenty of puncuation already, thank you very much.
Also, can someone please suggest a reasonable implementation of (-Inf...-1)?
If not, can I suggest that we require that if one of the arguments to (list)
.. s +/-infinity, it be the second one, and additionaly say that a..b is the
list , a+1, a+2, ... b if b>a, and a, a-1, a-2, ... b if a>b. This would
allow the full expressiveness of both (-inf..0) and (0..inf) without ever
having an infinite starting point to a list.
(If a..b where a==b, then we get the list containing only a.)
In any case, (-inf...-1) would "obviously" either: begin with the smallest
negitive integer representable, or begin with the IEEE -inf.
If it begins with the IEEE -inf, then it has to continue with an infinite
number of -infs, since -inf+1=-inf (a rule of IEEE arithmitic).
Ergo, it is useless to begin at -inf unless perl6 becomes _very_ good at
finding out what you "really" meant.
OTOH, having it begin with the smallest non-(negitive)infinite value means
that it becomes non-infinite, IE scalar((-inf..0)) != inf. This is
obviously a Bad Thing. Also, if bignums are intergrated (as has been
proposed), then there is no smallest representable integer.
-=- James Mastros,
In slightly over his head.