Logo

Programming-Idioms

  • Cobol
  • Lisp
  • Scheme

Idiom #57 Filter list

Create the list y containing the items from the list x that satisfy the predicate p. Respect the original ordering. Don't modify x in-place.

(define y (filter p x))
(setf y (remove-if-not p x))
for Item of X loop
   if P (Item) then
      Y.Append (Item);
   end if;
end loop;

New implementation...