Newer
Older
(in-package :pure)
(define-updatef-expander car (x)
(let ((subform-temp (gensym))
(bind-temp (gensym)))
(values (list subform-temp)
(list x)
(list bind-temp)
`(cons ,bind-temp (cdr ,subform-temp))
`(car ,subform-temp))))
(define-updatef-expander cdr (x)
(let ((subform-temp (gensym))
(bind-temp (gensym)))
(values (list subform-temp)
(list x)
(list bind-temp)
`(cons (car ,subform-temp) ,bind-temp)
`(cdr ,subform-temp))))