summaryrefslogtreecommitdiff
path: root/list-functions-2.lisp
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <matthias@benkard.de>2008-07-30 21:20:07 +0200
committerMatthias Andreas Benkard <matthias@benkard.de>2008-07-30 21:20:07 +0200
commitc5cd5ea26f92e0e22631f858293d36507909d0f6 (patch)
tree1645576f63ab5907642101dd710db35b1190459b /list-functions-2.lisp
parentbae90539e72d2d52d48ccf6f70560bf42af2e546 (diff)
Add prototypes of TAGBODY, GO, BLOCK, and RETURN-FROM.
Diffstat (limited to 'list-functions-2.lisp')
-rw-r--r--list-functions-2.lisp8
1 files changed, 7 insertions, 1 deletions
diff --git a/list-functions-2.lisp b/list-functions-2.lisp
index c8d4ccd..1c99a4e 100644
--- a/list-functions-2.lisp
+++ b/list-functions-2.lisp
@@ -84,8 +84,14 @@
(cons (apply function (mapcar1 'car lists))
(apply 'mapcar (list* function (mapcar1 'cdr lists)))))))
+(defun maplist (function list &rest more-lists)
+ (let ((lists (list* list more-lists)))
+ (when (every1 'identity lists)
+ (cons (apply function lists)
+ (apply 'maplist (list* function (mapcar1 'cdr lists)))))))
+
(defun mapcan (function list &rest more-lists)
(%append (apply 'mapcar (list* function list more-lists))))
(defun mapcon (function list &rest more-lists)
- (apply (function mapcan) (list* function list more-lists)))
+ (%append (apply 'maplist (list* function list more-lists))))