[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)))