r5420: *** empty log message ***
[kmrcl.git] / lists.lisp
index 285bb397f426333f8b3eac243144c8704d08eb05..77b6fa52401157e11b78451156903100a4df6775 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
 ;;;; 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
 ;;;;
 ;;;;
 ;;;; This file, part of KMRCL, is Copyright (c) 2002 by Kevin M. Rosenberg
 ;;;;
   "Make into list if atom"
   (if (listp obj) obj (list obj)))
 
   "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))))))
 
   (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)
 (defun appendnew (l1 l2)
   "Append two lists, filtering out elem from second list that are already in first list"
   (dolist (elem l2 l1)