This page is part of the web mail archives of SRFI 17 from before July 7th, 2015. The new archives for SRFI 17 contain all messages, not just those from before July 7th, 2015.
(set! (car x) 5) rather than (set-car! x 5)To my eyes, the only effect of this change is to confuse the primitive which mutates bindings (set!) with a primitive that mutates values (set-car!). Although these two are radically different beasts, beginning students often find it hard to understand the difference, and a change of this sort will only make it harder to teach them.
humbly yours, john clementsps. Since I am using a fixed-width font, I can see that the second one is actually two characters shorter.
pps. let and letrec are both binding constructs. I don't see why we need two different forms. Why not just use 'let,' and if any of the right-hand-sides happen to refer to the name they're bound to, implicitly change the whole thing into a letrec? I think this would be much simpler and avoid lots of confusion.