maps all objects between start and test-fn with fn.
(defun map-> (fn start test-fn succ-fn)
"maps all objects between start and test-fn with fn."
(do ((i start (funcall succ-fn start))
(result nil))
((funcall test-fn i) (nreverse result))
(push (funcall fn i) result)))Source Context