- `(code
- "(function ("
- ,(join (list* "values"
- "nargs"
- (mapcar #'translate-variable
- (append required-arguments optional-arguments)))
- ",")
- "){"
- ;; Check number of arguments
- ,(lambda-check-argument-count n-required-arguments
- n-optional-arguments
- (or rest-argument keyword-arguments))
- ,(compile-lambda-optional ll)
- ,(compile-lambda-rest ll)
- ,(compile-lambda-parse-keywords ll)
- ,(let ((*multiple-value-p* t))
- (if block
- (ls-compile-block `((block ,block ,@body)) t)
- (ls-compile-block body t)))
- "})"))))))
+ `(function (|values| |nargs| ,@(mapcar (lambda (x)
+ (make-symbol (translate-variable x)))
+ (append required-arguments optional-arguments)))
+ ;; Check number of arguments
+ ,(lambda-check-argument-count n-required-arguments
+ n-optional-arguments
+ (or rest-argument keyword-arguments))
+ (code
+ ,(compile-lambda-optional ll))
+ ,(compile-lambda-rest ll)
+ (code
+ ,(compile-lambda-parse-keywords ll))
+
+ ,(let ((*multiple-value-p* t))
+ (if block
+ (ls-compile-block `((block ,block ,@body)) t)
+ (ls-compile-block body t)))))))))