On Aug 23, 2007, at 6:26 PM, |/|/ Bendick wrote:
I understand the importance of different implementations of the same language having the same semantics, but are there any reasons why it would be a bad thing to create a language , suspiciously similar to scheme, where () is self evaluating?
I don't care one way or the other whether () is self-evaluating in Scheme.
I don't *particularly* care whether the evaluation order of arguments in a function application is unspecified or left-to-right. [1]
Gambit follows the standard in both cases; I guess I've been debugging other people's nonstandard, broken code on Gambit for enough years now that I don't appreciate code that relies on the "helpful" language extensions by some implementations of self- evaluating () and fixed left-to-right argument evaluations.
By the way, R5.97RS keeps both of these R5RS rules.
Brad
[1] The current rule that the order can be different for each (dynamic) function application appeals to me somewhat for its beauty, and I also find it interesting that at one time each time you rebuilt Gambit from Scheme sources the compiler or interpreter (I don't remember which) switched from left-to-right to right-to-left evaluation of arguments in a function application; this may still be true.