Mapcan

The Lisp function mapcan works much like mapcar, but with a different way of gathering results:


(defun filter (lst predicate)
  (mapcan #'(lambda (item)
              (if (funcall predicate item)
                  (list item)
                  '()))
          lst) )

>(filter '(a 2 or 3 and 7) 'numberp)

(2 3 7)

>(filter '(a 2 or 3 and 7) 'symbolp)

(A OR AND)

Contents    Page-10    Prev    Next    Page+10    Index