関数 QUOTEとFUNCTIONを使い分ける 関数を引数として渡す書法では、function(#')やquote(')が使われますが、使われる状況によって意味合いが変ってくることがあります。 局所関数と大域関数 quoteでは、大域の関数を参照(symbol-functionの値と同じ)しますが、functionではもっとも内側のスコープの関数を参照します。 (defun foo (&rest args) (format nil "global foo!!! => ~{~A~^ ~}" args)) (defun bar () (flet ((foo (&rest args) (format nil "local foo!!! => ~{~A~^ ~}" args))) (list (apply #'foo '(1 2 3)) (apply 'foo '(1 2 3))))) (bar)