Side-effect free containers for E
Mark S. Miller
markm@caplet.com
Wed, 09 Aug 2000 20:12:19 -0700
At 06:09 PM 8/9/00 , Tyler Close wrote:
>Markm wrote:
> > 1) Should we remove mutable containers from the normal user
> > container
> > library?
>If you succeed at #4, then I don't see where the flex containers would
>be useful. If you keep them around anyways, you will have trouble
>accomplishing #1.
Assuming we succeed at #4 (efficiency of immutable derivation operations),
if the Flex containers would then no longer be useful, then the answer to #1
is yes, and we wouldn't keep them around.
>If "+" means "concatenation of sequences", then what does "-" mean? I
>think the concatenation operator is "|".
In E's current table classes, "-" doesn't mean anything. Among tables
considered as sets of keys, "|" means union, "&" means intersect, and "&!"
means what is normally referred to as set subtraction: all the elements of
the set on the left operand that aren't in the set on the right. In all
cases, the values in the resulting set are taken from the left operand if
possible, and from the right operand otherwise. See
http://www.erights.org/elang/collect/tables.html
> > Tyler, since you're the only one currently familiar with
> > both, do you see
> > any problem with this approach?
>
>Seems fine, though I would rather not be the only one familiar with
>both.
Thanks. Understood.
Since you agree, we should probably postpone some operator syntax design
issues, like "+" vs "|", that are relevant to #2 (choosing between the current
collections and Hydro), which we're also postponing, but not relevant to #1.
We should, of course, not postpone those syntax issues that are relevant to
#1, like "[key]=" vs "[key] :=".
Sorry to be ??? about it, but if we talk about too many things at once we
won't settle any of them in a satisfying manner. We're lucky that the
issues you raised are as separable as they are.
Cheers,
--MarkM