[Function]
(map-subobjects function seq [:recurse bool] [:key fn] [:test fn] [:type class])

Maps function over the subobjects of seq. If recurse is true then mapping is recursively applied to all subcontainers of seq If test is supplied then only those objects for which test returns true are mapped. If type is supplied instead of test then only objects of that type are mapped. If key is supplied it is first applied to each mapped object and the results are passed to the test function. map-subobjects does not return a value.

cm> ;;
collect
cm> keynums
of
cm> all
midi
cm> notes
in
cm> #&stuff.
(let ((nums '())) 
      (map-subobjects #'(lambda (x) (push x nums)) #&stuff 
                      :key #'midi-keynum :type 'midi)
      (nreverse nums))
cm>

See Also: