((1 5 9) (2 6 10) (3 7 11) (4 8 12))となる.この転置行列を求める関数は,
(defun transpose (a) (apply #'mapcar* #'list a) ) > (transpose a) ((1 5 9) (2 6 10) (3 7 11) (4 8 12))とできる.applyは第一引数に関数を与えて,その関数に渡す 引数をリストにして第二引数以降に与えることで,第一引数の関数を 実行する.
> (mapcar* #'list '(1 2) '(3 4)) ((1 3) (2 4)) > (apply #'mapcar* '(list (1 2) (3 4))) ((1 3) (2 4)) > (apply #'mapcar* (list #'list '(1 2) '(3 4))) ((1 3) (2 4)) > (apply #'mapcar* #'list (list '(1 2) '(3 4))) ((1 3) (2 4)) > (apply #'mapcar* #'list '((1 2) (3 4))) ((1 3) (2 4))