[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: perhaps I've missed something ...
>>>>> "Michael" == Michael Livshin <mlivshin@xxxxxxxxxxx> writes:
Michael> sperber@xxxxxxxxxxxxxxxxxxxxxxxxxxx (Michael Sperber [Mr. Preprocessor]) writes:
>> [ snipped discussion about education ]
Michael> hi there, all of you. I am but a humble programmer, 5 years away from
Michael> the academia, and here is my view on the subject of "set!"
Michael> overloading. if you are only interested in academically rigorous
Michael> discussion, don't bother reading further.
Michael> 1. what I, in my naivete about PL design, take "set!" to be?
Michael> (set! <name> <value>) translates, in my mind, to: dear Scheme, please
Michael> make it so that next time I say <name>, and <name> denotes the same
Michael> thing as now, I get <value>.
But this intuition is wrong, because SET! has interaction with *place*
(in the program source code) in addition to interaction with time.
(define x 23)
(let ((x 5))
(set! x 17))
x => 23
This is precisely the case students struggle with.
The intuition is right for data structure mutators.
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla