>
> Is this supposed to happen?
>
>
Yes. This is a recent change.

The correct version is now:

  (define-syntax define-integrable
    (lambda (x)
      (define make-residual-name
        (lambda (name)
          (datum->syntax name
            (string->symbol
              (string-append "residual-"
                (symbol->string (syntax->datum name)))))))
      (syntax-case x (lambda)
        [(_ (name . formals) form1 form2 ...)
          (identifier? #'name)
          #'(define-integrable name (lambda formals form1 form2 ...))]
        [(_ name (lambda formals form1 form2 ...))
         (identifier? #'name)
         (with-syntax ((xname (make-residual-name #'name)))
           #'(begin
               (define-fluid-syntax name
                 (lambda (x)
                   (syntax-case x ()
                     [_ (identifier? x) #'xname]
                     [(_ arg (... ...))
                      #'((fluid-let-syntax
                           ((name (identifier-syntax xname)))
                           (lambda formals form1 form2 ...))
                         arg (... ...))])))
               (define xname
                 (fluid-let-syntax ((name (identifier-syntax xname)))
                   (lambda formals form1 form2 ...)))))])))

-- 
http://codeplex.com/IronScheme
http://xacc.wordpress.com

Reply via email to