In the discussion of how to build a "virtual subtree", http://common-lisp.net/pipermail/elephant-devel/2007-April/000949.htm
Ian gave me a tip on how to find all Triples with a certain property: [My recipe] will create an index 'triples-first which only indexes triples and does so by the value of the first element. Thus you can easily retrieve all triples with the first element eq to 5. ELE-TESTS> (map-index (lambda (sk v pk) (print v)) (get-index my- things 'triples-first :value 5))) Just wanted to point out that I want to *collect* these values -- so I wrote a function that does this: (defun match-triples-beginning (beginning) (let ((results (list nil))) (map-index (lambda (k v pk) (declare (ignore k pk)) (setq results (nconc results (list v)))) (get-index *things* 'triples-beginning) :value beginning) (cdr results))) This makes me think that it would be nice to have a `mapcar'-style function built in for mapping across an index and collecting the results. First question is, what would such a function be called! (Maybe just add a :collect keyword to `map-index'?) _______________________________________________ elephant-devel site list elephant-devel@common-lisp.net http://common-lisp.net/mailman/listinfo/elephant-devel