[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] redefining cons,car,cdr in SICP
From: |
Alan Post |
Subject: |
Re: [Chicken-users] redefining cons,car,cdr in SICP |
Date: |
Fri, 3 Dec 2010 13:36:20 -0700 |
On Fri, Dec 03, 2010 at 09:03:15PM +0100, Jörg F. Wittenberger wrote:
> Am Freitag, den 03.12.2010, 12:57 -0500 schrieb Hans Nowak:
> > On Fri, Dec 3, 2010 at 12:33, David Steiner <address@hidden> wrote:
> > > i'm reading SICP and practicing in chicken. in the book they redefine
> > > cons, car and cdr using procedures:
> > >
> > > (define (cons x y)
> > > (define (dispatch m)
> > > (cond ((= m 0) x)
> > > ((= m 1) y)
> > > (else (error "Argument not 0 or 1 -- CONS" m))))
> > > dispatch)
> > > (define (car z) (z 0))
> > > (define (cdr z) (z 1))
> > >
> > > however it produces an error in chicken:
> > > Error: (caar) bad argument type: #<procedure (dispatch m)>
> > >
> > > why doesn't it work?
>
> This is clearly a bug!
>
Is there a rule in R5RS that says cond can't be defined using cons?
I would expect one result of this code would be redefining cons,
which then gets used by cond, which then calls iteslf again...
Restated, I'm not clear on whether "clearly a bug" applies in this
case.
-Alan
--
.i ko djuno fi le do sevzi
- [Chicken-users] redefining cons,car,cdr in SICP, David Steiner, 2010/12/03
- [Chicken-users] Re: redefining cons,car,cdr in SICP, David Steiner, 2010/12/03
- Re: [Chicken-users] redefining cons,car,cdr in SICP, Kon Lovett, 2010/12/03
- Re: [Chicken-users] redefining cons,car,cdr in SICP, Hans Nowak, 2010/12/03
- Re: [Chicken-users] redefining cons,car,cdr in SICP, F. Wittenberger, 2010/12/03
- Re: [Chicken-users] redefining cons,car,cdr in SICP, Felix, 2010/12/04
- Re: [Chicken-users] redefining cons,car,cdr in SICP, F. Wittenberger, 2010/12/04
- Re: [Chicken-users] redefining cons,car,cdr in SICP, Jim Ursetto, 2010/12/03