diff options
author | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2013-07-18 17:31:12 +0200 |
---|---|---|
committer | Matthias Andreas Benkard <code@mail.matthias.benkard.de> | 2013-07-18 17:31:12 +0200 |
commit | 044615051f1f574b5055095948c97e9fea4c4872 (patch) | |
tree | c95c2f0e1523a70f92970256e9a03f6679660cff | |
parent | 65aceb5698c2cf55e1862c2a40df402296d98d45 (diff) |
Fix support for ((LAMBDA ...) ...) forms.
-rw-r--r-- | sb-eval2.lisp | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/sb-eval2.lisp b/sb-eval2.lisp index eda3a60..672d784 100644 --- a/sb-eval2.lisp +++ b/sb-eval2.lisp @@ -925,7 +925,7 @@ (destructuring-bind (f . args) form (check-type f (or list symbol)) (let ((local-macro? (context-find-macro context f)) - (global-macro? (macro-function f))) + (global-macro? (and (symbolp f) (macro-function f)))) (cond (local-macro? (let ((macro-function local-macro?)) @@ -936,9 +936,8 @@ (global-macro? (prepare-form (funcall global-macro? form (context->native-environment context)) context)) ((and (listp f) - (listp (first f)) - (eq 'lambda (first (first f)))) - (let ((lambda-fn (prepare-lambda (rest (first f)) context))) + (eq 'lambda (first f))) + (let ((lambda-fn (prepare-lambda (rest f) context))) (prepare-direct-call lambda-fn args context))) (t (if (local-function-p context f) |