Side-effect free containers for E
Tyler Close
tjclose@yahoo.com
Thu, 10 Aug 2000 18:50:17 -0400
Markm wrote:
> I'd also like to re-iterate the Familiarity criterion (to
> the C syntactic
> tradition).
Ok, but only if I can question it.
In C,
a[3] = 'z';
is syntactic sugar for:
*(a + 3) = 'z';
Essentially, it's pointer arithmetic to assign a value to a specific
memory location. It's variable assignment, not container manipulation.
How exactly is the attempt to imbue this syntax with map manipulation
semantics part of the C syntactic tradition?
Perhaps what you want for E is not mutable containers, but what Marcs
hinted at in one of his recent posts, syntax for an array of slots. An
array of slots is not a container and need not look anything like a
container, so there should be no confusion. Coders wed to C can try to
get as far as they like using arrays of slots, and then graduate to
containers when they are ready.
Maybe the syntax is this:
define a := {4};
a[3] := 'z';
This looks substantially different from what would be container
addition:
define consensus := [ "tyler" ] asSet;
consensus += "markm";
As for the "We're not even at 1.0 yet, but the dog's in the manger."
argument, maybe we should list what the actual changes are. So far,
all I've asked for is the renaming of some operator expansions.
Tyler
_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com