On Lisp
今日はあまり時間がなかった。
(define-syntax null! (syntax-rules () ((_ a) (set! a '())))) ;; macro を展開 ;; gosh> (macroexpand '(null! a)) ;; (#<identifier user#set!> a (#<identifier user#quote> ())) (define-syntax mac (syntax-rules () ((_ a) (macroexpand (quote a))))) ;; gosh> (mac (null! a)) ;; (#<identifier user#set!> a (#<identifier user#quote> ()))