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

Re: perhaps I've missed something ...

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.

>>>>> "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