On Friday, September 11, 2015 at 9:27:46 PM UTC+5:30, rand... at fastmail.us wrote:
On Fri, Sep 11, 2015, at 11:55, Chris Angelico wrote:
On Sat, Sep 12, 2015 at 1:49 AM, Ian Kelly wrote:
Ah, that makes sense. It's writing into the dict that is created and
returned by locals(), but not actually updating the frame locals which
are the source of truth.
Yeah... but it only makes sense to people who understand the
implementation. It's certainly not a logical and sane behaviour that
would be worth documenting and using.
What else would you document? Reading from them is a reasonable thing to
do, and works. Writing to them is a reasonable thing to want to do, but
won't work, so you need to document that it doesn't work.

This is actually an old elusive holy grail -- first class environments.
In denotational semantics the two tools used to model variables and control-flow
respectively are environments and continuations.
The Scheme inventors were brave enough to mandate first-class continuations
but could not make the courage for first-class environments.
So every Scheme dialect introduces 1? class envs in a ?-assed inconsistent way

Likewise python's locals-dicts and (I am guessing) most languages with some
commitment to first-classness

Search Discussions

Discussion Posts


Follow ups

Related Discussions



site design / logo © 2018 Grokbase