cons-dispatch
2016-08-23
0 0 0
no vote
Other
Earn points
(define (mycons x y)
(lambda (m . v)
(cond ((eq? m 'car) x) ((eq? m 'cdr) y)
((eq? m 'setcar) (set! x (car v)))
((eq? m 'setcdr) (set! y (car v)))
(else (error "Argument not CAR or CDR -- CONS" m)))))
(define (mycar z) (z 'car))
(define (mycdr z) (z 'cdr))
(define (mysetcar! z newx) (z 'setcar newx))
(define (mysetcdr! z newy) (z 'setcdr newy))
(define k (mycons 1 2))
(write (list (mycar k) (mycdr k) k))
(mysetcdr! k -2)
(write (list (mycar k) (mycdr k)))
(mysetcar! k 12)
(write (list (mycar k) (mycdr k)))
(mysetcar! k 5) (mysetcdr! k 33)
(write (list (mycar k) (mycdr k)))
(lambda (m . v)
(cond ((eq? m 'car) x) ((eq? m 'cdr) y)
((eq? m 'setcar) (set! x (car v)))
((eq? m 'setcdr) (set! y (car v)))
(else (error "Argument not CAR or CDR -- CONS" m)))))
(define (mycar z) (z 'car))
(define (mycdr z) (z 'cdr))
(define (mysetcar! z newx) (z 'setcar newx))
(define (mysetcdr! z newy) (z 'setcdr newy))
(define k (mycons 1 2))
(write (list (mycar k) (mycdr k) k))
(mysetcdr! k -2)
(write (list (mycar k) (mycdr k)))
(mysetcar! k 12)
(write (list (mycar k) (mycdr k)))
(mysetcar! k 5) (mysetcdr! k 33)
(write (list (mycar k) (mycdr k)))
; --> (1 2 #<procedure:/t.scm:3:2>)(1 -2)(12 -2)(5 33)
; because it is Sche
Related Source Codes
Android AOA Android Open Accessory Development Usi
0
0
no vote
Golang AOA Android Open Accessory HID Control
0
0
no vote
PClite
0
0
no vote
GMSK Linear Receiver
0
0
no vote
The golden version of AFT that has been passed dow
0
0
no vote
No comment