chicken-janitors
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Chicken-janitors] #805: case-lambda is unhygienic


From: Chicken Trac
Subject: Re: [Chicken-janitors] #805: case-lambda is unhygienic
Date: Sun, 25 Mar 2012 08:14:46 -0000

#805: case-lambda is unhygienic
-----------------------------+----------------------------------------------
  Reporter:  syn             |       Owner:  ckeen   
      Type:  defect          |      Status:  accepted
  Priority:  minor           |   Milestone:  4.8.0   
 Component:  core libraries  |     Version:  4.7.x   
Resolution:                  |    Keywords:          
-----------------------------+----------------------------------------------
Changes (by ckeen):

  * owner:  => ckeen
  * status:  new => accepted


Comment:

 Does the following patch solve the issue for you?

 {{{
 diff --git a/chicken-syntax.scm b/chicken-syntax.scm
 index 08bede2..c92e0f3 100644
 --- a/chicken-syntax.scm
 +++ b/chicken-syntax.scm
 @@ -764,7 +764,8 @@
   `((>= . ,(##sys#primitive-alias '>=))
     (car . ,(##sys#primitive-alias 'car))
     (cdr . ,(##sys#primitive-alias 'cdr))
 -   (eq? . ,(##sys#primitive-alias 'eq?)))
 +   (eq? . ,(##sys#primitive-alias 'eq?))
 +   (length . ,(##sys#primitive-alias 'length)))
   (##sys#er-transformer
    (lambda (form r c)
      (##sys#check-syntax 'case-lambda form '(_ . _))
 @@ -785,11 +786,12 @@
            (%>= (r '>=))
            (%eq? (r 'eq?))
            (%car (r 'car))
 -          (%cdr (r 'cdr)))
 +          (%cdr (r 'cdr))
 +           (%length (r 'length)))
        `(##core#lambda
         ,(append minvars rvar)
         (##core#let
 -        ((,lvar (length ,rvar)))
 +        ((,lvar (,%length ,rvar)))
          ,(fold-right
            (lambda (c body)
              (##sys#decompose-lambda-list
 }}}

-- 
Ticket URL: <http://bugs.call-cc.org/ticket/805#comment:1>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]