|
(defun transpose (matrix)
|
|
(transpose matrix '()))
|
|
|
|
(defun transpose (matrix acc)
|
|
(cond
|
|
((lists:any
|
|
(lambda (x) (== x '()))
|
|
matrix)
|
|
acc)
|
|
('true
|
|
(let ((heads (lists:map #'car/1 matrix))
|
|
(tails (lists:map #'cdr/1 matrix)))
|
|
(transpose tails (++ acc `(,heads)))))))
|