New Operator

Lars T Hansen lth at acm.org
Thu Mar 6 07:12:28 PST 2008


On 3/6/08, P T Withington <ptw at pobox.com> wrote:
> I'm just relating personal experience, which is that when I need
>  integer division, I usually need to express the rounding mode too.  So
>  it seems odd to me to provide truncate as an operator, whereas the
>  other rounding modes require a function call.  (Perhaps I would be
>  less paranoid if I had not been repeatedly bitten by the C 'standard'
>  which leaves % and / implementation-dependent over parts of their
>  domain.)  I'd rather see the rounding functions extended to 2-argument
>  versions.
>
>  The existence of % does support having its complement, in the absence
>  of multiple-value returns.
>
>  I don't understand your remark about / rounding.  Isn't it just inexact?

Sure / can return inexact results, but the inexactness is not
arbitrary.  It's a result of the selected precision
(single/double/extended) and rounding mode.  I wish I could be more
specific, but my IEEE doc is not where I am right now.  (Nothing on
the open 'net seems to be quite specific enough.)  The wikipedia page
for IEEE754 lists four rounding modes for binary floating point.
Decimal floating point has more.

Maybe the confusion is regarding "rounding to selected precision" vs
"rounding to integer".  I'm talking about the former.

--lars

>
>
>  On 2008-03-06, at 09:08 EST, Lars T Hansen wrote:
>
>  > Tucker,
>  >
>  > I detect sarcasm in your reply, but maybe I'm just being paranoid
>  > now...
>  >
>  > R4RS Scheme:
>  >
>  > "For integers n1 and n2 with n2 not equal to 0,
>  >
>  > (= n1 (+ (* n2 (quotient n1 n2))  (remainder n1 n2)))"
>  >
>  >
>  > E262-3 (the % operator):
>  >
>  > "In the remaining cases, where neither an infinity, nor a zero, nor
>  > NaN is involved, the floating-point remainder r from a dividend n and
>  > a divisor d is defined by the mathematical relation r = n − (d
>  > * q)
>  > where q is an integer that is negative only if n/d is negative and
>  > positive only if n/d is positive, and whose magnitude is as large as
>  > possible without exceeding the magnitude of the true mathematical
>  > quotient of n and d."
>  >
>  > Div truncates and the definition is machine independent and
>  > complements that of  %.
>  >
>  > Since / rounds (among other operators) but there is no way to control
>  > its rounding mode, I don't know why 'div' should have that control
>  > either, necessarily.
>  >
>  > --lars
>  >
>  > On 3/6/08, P T Withington <ptw at pobox.com> wrote:
>  >> Don't you want to be able to express rounding mode?  And if so, do
>  >> you
>  >> need 4 operators? floor/, ceiling/, round/, truncate/?  Oh, maybe
>  >> they
>  >> should be named /-, /+, /~ and /0.  Yow.
>  >>
>  >> Is div truncate/, or round/?  I can never remember.
>  >>
>  >>
>  >> On 2008-03-05, at 18:18 EST, Lars Hansen wrote:
>  >>
>  >>> Just \ would work if we're happy with not allowing its use at the
>  >>> end of
>  >>> a line.  A little dodgy, syntactically, IMO.  I've advocated "\\" in
>  >>> the
>  >>> past, which by normal lexing rules would be unambiguous by the
>  >>> longest-token lexing rule.
>  >>>
>  >>> ("/." is ambiguous, consider 3/.5.)
>  >>>
>  >>> --lars
>  >>>
>  >>>
>  >>> ________________________________
>  >>>
>  >>>      From: Michael O'Brien [mailto:mob at mbedthis.com]
>  >>>      Sent: 5. mars 2008 15:06
>  >>>      To: Lars Hansen
>  >>>      Cc: TNO; es4-discuss at mozilla.org
>  >>>      Subject: Re: New Operator
>  >>>
>  >>>
>  >>>      I'll vote for that also. It improves readability quite a bit.
>  >>>
>  >>>      But is there a better operator than "\"?
>  >>>
>  >>>      Shame "//" is taken.  What about  "/."
>  >>>
>  >>>      Michael
>  >>>
>  >>>      Lars Hansen wrote:
>  >>>
>  >>>              I have been pushing for this in the past on several
>  >>> occasions, but enthusiasm in the WG has been scant, unfortunately.
>  >>> Maybe I haven't been pushing hard enough.
>  >>>
>  >>>              --lars
>  >>>
>  >>>
>  >>> ________________________________
>  >>>
>  >>>                      From: es4-discuss-bounces at mozilla.org
>  >>> [mailto:es4-discuss-bounces at mozilla.org] On Behalf Of TNO
>  >>>                      Sent: 5. mars 2008 14:13
>  >>>                      To: es4-discuss at mozilla.org
>  >>>                      Subject: New Operator
>  >>>
>  >>>
>  >>>                      Is it too late to propose an integer division
>  >>> operator into the spec? I do quite a bit of WSH programming in both
>  >>> VBScript an JScript and sometimes its a bit of an irritant during a
>  >>> translation, it would be nice to see this operator "\" available in
>  >>> the
>  >>> new ECMAScript instead of having to rely on more inefficient
>  >>> workarounds:
>  >>>
>  >>>                      VBScript:
>  >>>
>  >>>                      Dim result
>  >>>                      result = 19 \ 4 '(result = 4)
>  >>>
>  >>>                      JScript:
>  >>>
>  >>> http://www.codingforums.com/showthread.php?t=58799
>  >>>
>  >>>
>  >>> ________________________________
>  >>>
>  >>>
>  >>>              _______________________________________________
>  >>>              Es4-discuss mailing list
>  >>>              Es4-discuss at mozilla.org
>  >>>              https://mail.mozilla.org/listinfo/es4-discuss
>  >>>
>  >>>
>  >>> _______________________________________________
>  >>> Es4-discuss mailing list
>  >>> Es4-discuss at mozilla.org
>  >>> https://mail.mozilla.org/listinfo/es4-discuss
>  >>
>  >> _______________________________________________
>  >> Es4-discuss mailing list
>  >> Es4-discuss at mozilla.org
>  >> https://mail.mozilla.org/listinfo/es4-discuss
>  >>
>  > _______________________________________________
>  > Es4-discuss mailing list
>  > Es4-discuss at mozilla.org
>  > https://mail.mozilla.org/listinfo/es4-discuss
>
>  _______________________________________________
>  Es4-discuss mailing list
>  Es4-discuss at mozilla.org
>  https://mail.mozilla.org/listinfo/es4-discuss
>



More information about the Es4-discuss mailing list