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.

Reply via email to