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?

_______________________________________________
Chicken-users mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/chicken-users

Reply via email to