Plaster

common-lisp
(defun x () (rest '(a (&rest x . #1=(&rest y)) #1# a))) (defun y () (rest '(b (&rest x . #1=(&rest y)) #1# b))) (defun z () (rest '(c (&rest x . #1=(&rest y)) #1# c))) (let ((x (x)) (y (y)) (z (z))) (format t "~3S ~S [~X] ~S [~X]~@ ~3S ~S [~X] ~S [~X]~@ ~3S ~S [~X] ~S [~X]~%" (eq (cddr (car x)) (cadr x)) (car x) (sb-kernel:get-lisp-obj-address (car x)) (cadr x) (sb-kernel:get-lisp-obj-address (cadr x)) (eq (cddr (car y)) (cadr y)) (car y) (sb-kernel:get-lisp-obj-address (car y)) (cadr y) (sb-kernel:get-lisp-obj-address (cadr y)) (eq (cddr (car z)) (cadr z)) (car z) (sb-kernel:get-lisp-obj-address (car z)) (cadr z) (sb-kernel:get-lisp-obj-address (cadr z))))

Annotations