(defun pipe-filter (pred pipe) (cond ((pipe-null-p pipe) empty-pipe) ((funcall pred (head pipe)) (make-pipe (head pipe) (pipe-filter pred (tail pipe)))) (t (pipe-filter pred (tail pipe)))))