我有兩個列表,每個列表都有列表中的列表。我想每次都從第一個列表中獲取第三個值,並從第二個列表中獲取第一個值,然後將這些項目相乘,然後將它們相加。Lisp兩個列表相乘並添加兩個值
(defvar *list-1* ((item1 1 4) (item2 4 5) (item3 5 8)))
(defvar *list-2* ((1) (3) (5)))
因此,我希望(1×4)+(3 * 5)+(5 * 8)= 59
我有下面的代碼到目前爲止
(defun get-total (lst lst1)
(loop :for element :in lst
:for element1 :in lst1
:sum (third element)))
我想到了這一點,但很驚訝,與Scheme摺疊不同,'reduce'只有一個列表。 – Sylwester 2015-04-02 12:57:45
噢,我想知道這背後的邏輯是什麼 – Baggers 2015-04-02 13:17:29