[movitz-cvs] CVS movitz/losp/muerte
ffjeld
ffjeld at common-lisp.net
Mon Mar 17 23:25:05 UTC 2008
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory clnet:/tmp/cvs-serv27970
Modified Files:
lists.lisp
Log Message:
Add trivial mapcan.
--- /project/movitz/cvsroot/movitz/losp/muerte/lists.lisp 2007/03/21 20:17:48 1.22
+++ /project/movitz/cvsroot/movitz/losp/muerte/lists.lisp 2008/03/17 23:25:05 1.23
@@ -9,7 +9,7 @@
;;;; Created at: Tue Dec 5 18:40:11 2000
;;;; Distribution: See the accompanying file COPYING.
;;;;
-;;;; $Id: lists.lisp,v 1.22 2007/03/21 20:17:48 ffjeld Exp $
+;;;; $Id: lists.lisp,v 1.23 2008/03/17 23:25:05 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -312,6 +312,18 @@
result)))
(t (error "mapcar not fully implemented."))))
+
+(defun mapcan (function first-list &rest more-lists)
+ (declare (dynamic-extent more-lists))
+ (cond
+ ((null more-lists)
+ ;; 1 list
+ (do ((result nil)
+ (p first-list (cdr p)))
+ ((endp p) result)
+ (setf result (nconc result (funcall function (car p))))))
+ (t (error "~S not implemented." 'mapcan))))
+
(defun mapc (function first-list &rest more-lists)
(numargs-case
(2 (function first-list)
More information about the Movitz-cvs
mailing list