New Operator

P T Withington ptw at pobox.com
Thu Mar 6 06:54:34 PST 2008


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?

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




More information about the Es4-discuss mailing list