summaryrefslogtreecommitdiff
path: root/defun-1.lisp
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <matthias@benkard.de>2008-08-03 10:43:56 +0200
committerMatthias Andreas Benkard <matthias@benkard.de>2008-08-03 10:43:56 +0200
commit4f4f0aad6db508de2a59d29b59cc738a6ece4c4d (patch)
treec00a079b9b3d6a86438a3dfa6c2659da16df5f58 /defun-1.lisp
parenta7343b3f21b008fa7822073ecb658063bd0e09a6 (diff)
Add DEFTYPE.
Diffstat (limited to 'defun-1.lisp')
-rw-r--r--defun-1.lisp10
1 files changed, 7 insertions, 3 deletions
diff --git a/defun-1.lisp b/defun-1.lisp
index 51e9db0..875b7a5 100644
--- a/defun-1.lisp
+++ b/defun-1.lisp
@@ -21,7 +21,7 @@
(export '(defmacro defun))
-(%defun* make-defun-body (lambda-list body)
+(%defun* make-defun-body (lambda-list body destructuring-p)
(let ((lambda-sym (gensym)))
`(,lambda-sym
(d-b ,lambda-list nil nil ,lambda-sym
@@ -29,7 +29,7 @@
(%defmacro* defun (name lambda-list . body)
`(%defun ,name
- ,@(make-defun-body lambda-list body)))
+ ,@(make-defun-body lambda-list body nil)))
(%defun* make-defmacro-body (lambda-list body)
(let ((arg-sym (gensym))
@@ -49,7 +49,11 @@
(%defmacro* lambda (lambda-list . body)
`(%lambda
- ,@(make-defun-body lambda-list body)))
+ ,@(make-defun-body lambda-list body nil)))
+
+(%defmacro* destructuring-lambda (lambda-list . body)
+ `(%lambda
+ ,@(make-defun-body lambda-list body t)))
(defun funcall (function &rest arguments)
(apply function arguments))