CommonLisp初心者。lispコードを書くことは、私が以前に書いたように、c ++/javaを書くこととはかなり異なります。
私は練習のためにcommonlispで単純な行列クラスを書き込もうとしています。そのようないくつかのコード:
(defun make-matrix (row col)
(make-list row :initial-element (make-list col :initial-element nil)))
(defun init-matrix (matrix init-value)
(labels ((set-element-value (lst)
(if (and lst
(listp lst))
(mapcar #'set-element-value lst)
(setf lst init-value))))
(set-element-value matrix)))
(defun matrix+ (&rest matrices)
(apply #'mapcar (lambda (&rest rows)
(apply #'mapcar #'+ rows)) matrices))
私の質問は、「適用」せずに、またはより良い方法で、異なる数の引数を受け入れるマトリックス+を書くことができるかどうかです。ある意味でLispはあるべきですか?
そして、行列*はどうですか、誰かが行列*で任意の数の引数を受け入れる素晴らしいコードを見せてくれますか?ありがとう。