apply: FUNCTION ARG &rest MORE-ARGS apply は何気に引数を複数に分けて受けられる。でも funcall とは違って、最初見たときは意味がわからん動作をする。 というのは、ARG と MORE-ARGS のうち一番最後の引数は list に突っ込んでおかねばならず、それ以外はそのままでいいというかそのままでないといけない。 #| ;;; 最初は受け取った引数をリストにまとめて返すこんな関数を ;;; 定義して使ってたのだけど、list がまさに同じ動作をする ;;; ことに気づいてしまった (defun args (&rest args) args) |# ;;; ふつーに関数 list を呼び出す (list 1 2 3) => (1 2 3) ;;; ふつーに関数 list を apply で呼び出す (apply #'list '(1 2 3))