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

