On Aug 15, 2008, at 9:17 PM, Michael Haufe wrote:

>
> --------------------------------------------------------------
>
> (define (+ x y)
>    (if (= x 0)
>        y
>        (+ (-1+ x) (1+ y))))
>
> function add(x,y) (!x) ? y : add(--x,++y);
> --------------------------------------------------------------
> I don't claim to be a Scheme expert, but I believe my interpretation  
> to be correct.
> I am also aware of the recursion limits of ES having used it for a  
> number of years.
> This is for personal study and amusement.

I do claim to be a Scheme expert, and I believe your interpretation is  
incorrect. The -1+ and 1+ procedures in Scheme return a value derived  
by adding either -1 or +1 to their argument, but do not mutate their  
argument - a Scheme procedure cannot do so, only a special form could.  
However, ECMAScript -- and ++ mutate the referenced location, in  
addition to returning a value. Preincrement/predecrement operators  
will at least return the modified instead of the original value,  
unlike the post versions, but they are still mutators and thus do not  
match the Scheme seantics.

Regards,
Maciej

_______________________________________________
Es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to