Я пытаюсь размножить список с n подписок со списком с n скалярами. Он должен работать следующим образом:Попытка умножить все элементы в списке подписок с элементами в другом списке в lisp
(kmult-matrix '((3 4 2 4) (2 5 6 9) (1 -2 8 10)) '(2 3 5))
=> ((6 8 4 8) (6 15 18 27) (5 -10 40 50))
Каждый n-ю подсети умножается на n-й скаляр во втором списке. Вот что я получил это далеко:
(defun kmult-matrix (m k)
(apply 'append (mapcar (lambda (x1)
(mapcar (lambda (x2)
(mapcar (lambda (x3)
(* x3 x1))
x2))
m))
k)))
Каких результатов в:
((6 8 4 8) (4 10 12 18) (2 -4 16 20) (9 12 6 12) (6 15 18 27) (3 -6 24 30) (15 20 10 20) (10 25 30 45) (5 -10 40 50))
Надеется, что это нормально, чтобы спросить, это как это для распайки и у меня есть ощущение, что я не далек от решение. Кстати, я должен использовать mapcar.
Я чувствую себя таким немым прямо сейчас ... Большое спасибо;) –