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