next up previous
Next: 1.4 リスト行列の掛け算 Up: 1 リスト行列 Previous: 1.2 リスト行列の足し算,引き算

1.3 リスト行列の転置

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


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