Email list hosting service & mailing list manager


Re: new function or modify read sperber@xxxxxx 18 Dec 2002 16:51 UTC

>>>>> "Marc" == Marc Feeley <xxxxxx@IRO.UMontreal.CA> writes:

Marc>   (parameterize ((write-shared #t)
Marc>                  (write-radix 16)
Marc>                  (write-prettily #t))
Marc>     (write X))
>>
>> Except your old code doesn't know anything about the presence of all
>> these flags.  In fact, every new feature controlled via these
>> parameters might break the old code.

Marc> Could you explain why?  I explicitly said: "But this will not happen
Marc> if you code your calls to write in this style: ...", meaning that only
Marc> "write" is in the scope of the parameterize.  There is no old code
Marc> affected by the parameterize!

Yes, there is, namely if you have this in new code ...

(parameterize ((write-symbols-all-lower-case #t))
  (old-code-procedure))

... and this in old code:

(define (old-code-procedure)
  (write (string->symbol "FooBarBaz")))

So PARAMETERIZE has the wrong semantics to enforce what you're
suggesting, and there's too much potential for foot-shooting.

--
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla