我正在編寫lisp中的矩陣轉置函數。我的方法可以從下面的代碼中可以看出:傳遞函數輸出作爲lisp中矩陣轉置的另一個函數參數
(defun matrix-T (matrix)
(cond ((null matrix) matrix)
(t (list
(do ((i 0 (+ i 1)))
((> i (length matrix)))
(format t "(mapcar #'(lambda (x)(nth ~A x)) matrix) %" i))))))
正如你所看到的,我想從do循環的輸出傳遞作爲 參數的列表功能。但是,我只能得到從matrix-T返回的do循環輸出。無論如何,我可以糾正這個問題嗎?
您這樣循環沒有在任何返回值子窗體,所以它返回NIL。它只是用FORMAT函數將輸出打印到'* STANDARD-OUTPUT *'。你想要返回什麼? – Barmar
我只是想讓它返回它輸出的文本 – category
但是輸出和返回值不是一回事。你真的想讓'matrix-T'返回一個字符串列表而不是一個新的矩陣嗎? – Barmar