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