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