Hi Grant,
welcome here :)
> My name is Grant and I'm just getting started with picolisp. I'm trying an
> exercise to model user-groups and memberships with the Entity/Relation
> database.
> I must be misunderstanding something, or doing something strange because I
> can't seem to create/retrieve items the way I expect to. For example:
I think you did everything perfectly right.
But 'iter' is a rather low-level function. If you call it as
> (iter (tree 'name '+User) '((This) (println (: name))))
it prints *all* entries in the b-tree. As your 'name' relation is an '+Idx', it
creates several entries per value.
If you want to iterate only the primary entries, you can pass a boolean 5th
argument to 'iter':
(iter (tree 'name '+User)
'((This) (println (: name)))
NIL
T
T )
Or use one of the higher-level functions which know about the relations and
handle them properly
(collect 'name '+User)
(collect 'name '+User NIL T 'name)
In interactive mode you can also just
(select +User)
(select +User name "Grant")
(select nr name memberships +User name "Grant")
☺/ A!ex
--
UNSUBSCRIBE: mailto:[email protected]?subject=Unsubscribe