[Date Prev][Date Next][Thread Prev][Thread Next][Author Index][Date Index][Thread Index]
CoordinateSpace
- To: <heh>
 
- Subject: CoordinateSpace
 
- From: Mark S. Miller <mark>
 
- Date: Mon, 23 Oct 89 12:36:48 PDT
 
- Cc: <eric>, <markm>, <xtech>
 
- In-reply-to: <Hugh>,11 PDT <8910221844.AA20486@xanadu>
 
Date: Sun, 22 Oct 89 11:44:11 PDT
   From: heh (Hugh Hoover)
     Since tables have a coordinate space, shouldn't coordinate spaces be moved
   from febe to xpp?
Unfortunately, yes.  Oh well.  I suppose this means that MetaVariable
will end up moving to xpp too.  
     Also, I'm building the initial tables with only 2 kinds of cs, integer
   and heaperAsPosition.
I would think that the descendant of MTable (MapTable?) could be
parameterized with a coordinate space, as it's internal implementation
is just a generic hash table.  In any case, the above two should be
good enough to start with.
     implication of coordinate space in tables:  a composite table can have only
   one coordinate space - which is enforced during construction.  Seems
   reasonable, I don't know what I'd do with a mixed one...
Correct.  It should cause a BLAST to try to compose two incompatable
tables, where incompatable means that they have incompatable
coordinate spaces.
     A thought..  If you had a table with a set-ordered cs, wouldn't that
   replace sets (or setbangs, depending on table)?  Main difference is
   a streamlined protocol for sets.  Of course, the sematics are a bit different
   for iterator(), count()... since they work on the contents of a position
   rather than the positions.  So, having sets as a subclass of seftable isn't
   quite useful.
Interesting.  I now think it makes more sense for Sets and SetBangs to
be their own types, so they can have a Set oriented protocol, but have
a SetBang implementation that wraps a MuTable, a SetView
implementation that wraps a ScruTable, and a Set that wraps an
ImmuTable.  The type hierarchy for these kinds of sets should probably
parallel the hierarchy you've come up with for tables (which I really
like).  How about MuSet, ImmuSet, and ScruSet?  (Yes, I'm serious)