Hi Henrik,

> ((key1. "some string") (key2 . (1 2 3)) (key3 . 345) (key4 . +Ref))

I would say so too. A '+Bag' is suitable only for (NIL terminated)
lists. The above is a (+List +Any).

For 'get'tting, a custom function is usually not necessary. The standard
Lisp functions will do. And for 'put'ting also only if the parts of
'+Any' are relations that require side-effects like joints or indexes.


On the other hand, is the above structure really required in the
dotted-pair form? If not, a list of bags like

   (rel xxx (+List +Bag)
      ((+Ref +Any))
      ((+Any)) )

might also do, holding the above data as

   ((key1 "some string") (key2 (1 2 3)) (key3 345) (key4 +Ref))

Note that the storage requirements in the DB are identical for a
2-element list and a dotted pair. Just in memory the list needs one cell
more.

The ((+Ref +Any)) could also be ((+Key +Any)), or just ((+Any)) if no
index is required. Or ((+Ref +Number)) or ((+Ref +String)) if you have a
known type.

Cheers,
- Alex
-- 
UNSUBSCRIBE: mailto:picol...@software-lab.de?subject=unsubscribe

Reply via email to