Fix module syntax; should be (define ...), not (declare ...).

This commit is contained in:
Jesse D. McDonald 2010-04-30 22:15:12 -05:00
parent 723f52dc1d
commit 8318db755f
1 changed files with 7 additions and 7 deletions

View File

@ -5,17 +5,17 @@
(provide read-module)
(define (read-module [port (current-input-port)])
`(lambda argv
`(lambda *argv*
,@(let iter ([forms (read-forms port)]
[bindings '()])
(cond
[(null? forms) (if (null? bindings)
'()
`(letrec ,bindings))]
[(simple-declare-form? (first forms))
[(simple-define-form? (first forms))
(iter (cdr forms) (cons (cdr (first forms))
bindings))]
[(lambda-declare-form? (first forms))
[(lambda-define-form? (first forms))
(iter (cdr forms) (cons `(,(first (second (first forms)))
(lambda ,(cdr (second (first forms)))
,@(cddr (first forms))))
@ -34,15 +34,15 @@
forms
(iter (read port) (cons form forms))))))
(define (simple-declare-form? form)
(define (simple-define-form? form)
(and (pair? form)
(eq? (first form) 'declare)
(eq? (first form) 'define)
(symbol? (second form))
(null? (cdddr form))))
(define (lambda-declare-form? form)
(define (lambda-define-form? form)
(and (pair? form)
(eq? (first form) 'declare)
(eq? (first form) 'define)
(pair? (second form))
(symbol? (first (second form)))))