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

Re: Lexical syntax for boxes

This page is part of the web mail archives of SRFI 111 from before July 7th, 2015. The new archives for SRFI 111 contain all messages, not just those from before July 7th, 2015.

Per Bothner scripsit:

> - A mutable #&datum is an anonymous initialized assignable global
> static.  Global static variables are generally considered to be
> dangerous and to be avoided.  Worse, if this is in the program text,
> you're mutating the actual program.  You get into all kinds of nasty
> questions about separation of compile-time and run-time.

I agree that they shouldn't be used in code, not even in quotations in
code.  Quotations are more subtle than they appear, as Queinnec says.

> Perhaps there is some use case for boxes as "holes" in data,

That's what I had in mind.

> written to and read from a file.  But it still is hard to come up with
> a problem this solves - after all you still need some way to find the
> box you need to mutate.

You can find the boxes by tree-walking while treating the rest of the
tree as mutable.  But on reflection I agree that if you're going to do
that, you might just as well have some more usual Scheme data structure
to look for.  Allowing the lexical syntax to create an immutable box
was for Racket's benefit.  Anyway, I've removed the lexical syntax,
except as documentation of the existing systems, and adopted some of
your language above.

I've also thought about the observable box, and come to the conclusion
that it should be a separate type, the observable object.  I have
updated InputDocket accordingly.

At the end of the Metatarsal Age, the dinosaurs     John Cowan
abruptly vanished. The theory that a single         cowan@xxxxxxxx
catastrophic event may have been responsible        http://www.ccil.org/~cowan
has been strengthened by the recent discovery of
a worldwide layer of whipped cream marking the
Creosote-Tutelary boundary.             --Science Made Stupid