r5417: *** empty log message ***
[kmrcl.git] / lists.lisp
index 285bb397f426333f8b3eac243144c8704d08eb05..77b6fa52401157e11b78451156903100a4df6775 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: lists.lisp,v 1.8 2003/07/05 02:32:08 kevin Exp $
+;;;; $Id: lists.lisp,v 1.9 2003/07/31 07:32:11 kevin Exp $
 ;;;;
 ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
   "Make into list if atom"
   (if (listp obj) obj (list obj)))
 
-(defun filter (fn lst)
-  "Filter a list by function, eliminate elements where fn returns nil"
+(defun map-and-remove-nils (fn lst)
+  "mao a list by function, eliminate elements where fn returns nil"
   (let ((acc nil))
     (dolist (x lst (nreverse acc))
       (let ((val (funcall fn x)))
         (when val (push val acc))))))
 
+(defun filter (fn lst)
+  "Filter a list by function, eliminate elements where fn returns nil"
+  (let ((acc nil))
+    (dolist (x lst (nreverse acc))
+      (when (funcall fn x)
+        (push x acc)))))
+
 (defun appendnew (l1 l2)
   "Append two lists, filtering out elem from second list that are already in first list"
   (dolist (elem l2 l1)