[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

perhaps I've missed something ...



... but I fail to see the appeal of this mechanism. As far as I can tell, a scheme implementation which conforms to this SRFI allows me to write

(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 clements

ps. 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.