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
[email protected]
http://common-lisp.net/mailman/listinfo/elephant-devel