The default / operator is not going to do integer division.  This is
not negotiable; normal people expect 1/2 to mean one half, so / is
going to coerce to some type that can support fractions.  We'll use
"div" and "mod" for the polymorphic variants defaulting to floor
semantics, and things like ediv and emod can in turn be importable
aliases to whichever kind of divmod you like, potentially even
overriding the definition of "div" and "mod" in the current lexical
scope through the magic of lexically scoped multiple dispatch.

And % should stick to standard floor semantics, I expect.

Whether a Num that happens to be an integer prints out with .0 is a
separate issue.  My bias is that a Num pretend to be an integer when
it can.  I think most folks (including mathematicians) think that
the integer 1 and the distance from 0 to 1 on the real number line
happen to be the same number most of the time.  And Perl is not about
forcing a type-theoretical viewpoint on the user...

Larry

Reply via email to