[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Extended local defines.
I sent the wrong version of eld.scm. This patch makes a def one of
(DEFINE id exp) or (DEFINE (id+) body) as I originally intended.
John
*** eld__00.scm Mon Jul 18 11:54:47 1988
--- eld.scm Mon Jul 18 13:11:59 1988
***************
*** 6,12 ****
;;; ELD Scheme
;;; form ::= def | exp
;;; body ::= def* exp+
! ;;; def ::= (DEFINE id body)
;;; | (DEFINE (id+) body)
;;; exp ::= id
;;; | const
--- 6,12 ----
;;; ELD Scheme
;;; form ::= def | exp
;;; body ::= def* exp+
! ;;; def ::= (DEFINE id exp)
;;; | (DEFINE (id+) body)
;;; exp ::= id
;;; | const
***************
*** 76,86 ****
(define (eld-def c def)
(let* ((def (simplify-def def))
(name (cadr def))
! (body (cddr def)))
! (eld-body (lambda (form-seq free)
! (c (list*3 define-kw name form-seq)
free)) ; Note: name may be in free.
! body)))
(define (eld-exp c exp)
(cond ((pair? exp) (eld-exp-is-pair c exp))
--- 76,86 ----
(define (eld-def c def)
(let* ((def (simplify-def def))
(name (cadr def))
! (exp (caddr def)))
! (eld-exp (lambda (form free)
! (c (list define-kw name form)
free)) ; Note: name may be in free.
! exp)))
(define (eld-exp c exp)
(cond ((pair? exp) (eld-exp-is-pair c exp))
***************
*** 198,206 ****
(define (make-binder binder defs form)
`((,binder ,(map (lambda (def)
! (let ((var (cadr def))
! (val (cddr def)))
! `(,var ,(seq->exp val))))
defs)
,@form)))
--- 198,204 ----
(define (make-binder binder defs form)
`((,binder ,(map (lambda (def)
! (list (cadr def) (caddr def)))
defs)
,@form)))