(define pusher cons) (define-syntax push (syntax-rules () ((_ e ls) (pusher e ls)))) (let ((pusher (lambda (x ls) (append ls (list x))))) (display (push 'a '(b c d))) (newline) (display (pusher 'd '(a b c))) (newline))