next up previous
Next: 2.3 リスト行列の掛け算 Up: 2 例題:行列表現と演算 Previous: 2.1 リスト行列の足し算,引き算

2.2 リスト行列の転置

上にあげたリスト行列を転置すると,
((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))


generated through LaTeX2HTML. M.Inaba 平成18年5月6日