我正在使用函數mapcar
和apply
進行一些LISP練習。我正在處理矩陣,我必須總結它的行和列。對於我有:帶有lisp的矩陣中行的總和
(apply #'mapcar #'+ matrix)
這是行得通的。因爲我知道如何轉置一個矩陣,我可以爲行做同樣的事情嗎?沒錯,這將是:
(apply #'mapcar #'+ (apply #'mapcar #'list matrix))
但我不開心與。我想直接總結該行,所以我做了一個apply
mapcar
:
(mapcar #'apply #'+ matrix)
是不的工作,我不知道爲什麼。錯誤是
值#(FUNCTION +)不是LIST類型。 [條件類型的TYPE-ERROR]
對於我來說,這將進去矩陣中的每個列表,並在每一個應用的總和。我不能讓mapcar
的apply
?如果不是,爲什麼不呢?是否有另一種方法來使用mapcar
和apply
來對矩陣的行進行求和?
PS:我正在使用lispstick進行編譯,矩陣是列表的列表。示例
((1 1 1) (2 2 2) (3 3 3))
對於3x3矩陣。
嗯,非常感謝。這使得很多感覺大聲笑。 – CoolTarka
我感覺有人可能會像'(defun applyfun(fn)(lambda(lst)(apply fn lst))''但我不相信這個名字是正確的。 – Sylwester
@Sylwester:是的,應用程序,謝謝你的建議。 – sds