provide a restricted form of define that does not create curried definitions

svn: r3039
This commit is contained in:
Eli Barzilay 2006-05-24 19:07:56 +00:00
parent 1fca26c61d
commit e95512246f

View File

@ -70,10 +70,18 @@
((var1 init1) ...) ((var1 init1) ...)
body ...)))) body ...))))
;; redefine to avoid curried define forms
(define-syntax (r5rs:define stx)
(syntax-case stx ()
[(_ id expr) (identifier? #'id)
#'(define id expr)]
[(_ (id . args) . body) (identifier? #'id)
#'(define (id . args) . body)]))
;; syntax ;; syntax
(provide quasiquote unquote unquote-splicing (provide quasiquote unquote unquote-splicing
if let and or cond case define delay do if let and or cond case delay do
(rename r5rs:letrec letrec) (rename r5rs:letrec letrec) (rename r5rs:define define)
let* begin lambda quote set! let* begin lambda quote set!
define-syntax let-syntax letrec-syntax define-syntax let-syntax letrec-syntax
@ -84,7 +92,6 @@
(rename require #%require) (rename require #%require)
(rename provide #%provide)) (rename provide #%provide))
(define-syntax synrule-in-stx-module-begin (define-syntax synrule-in-stx-module-begin
(lambda (stx) (lambda (stx)
(datum->syntax-object (datum->syntax-object