无法翻译输入为两个列表的矩阵,输出将是第二个列表添加到每个列表,例如:
(translate '((1 2 3)(4 5 6)(7 8 9)) '(10 20 30))
; -> ((11 22 33) (14 25 36) (17 28 39))
我目前有:
(define (translate matrix1 matrix2)
(if (list? (car matrix1))
(append '() (map + (car matrix1) matrix2))
(translate (cdr matrix1) matrix2)))
我认为每次递归调用一个空列表时,这将继续附加matrix1的每辆车,但我只是得到了我的第一个'行'输出。
非常感谢任何输入!
答案 0 :(得分:4)
这就像
一样简单(define (translate matrix1 matrix2)
(map (lambda (lst) (map + lst matrix2)) matrix1))
测试
> (translate '((1 2 3)(4 5 6)(7 8 9)) '(10 20 30))
'((11 22 33) (14 25 36) (17 28 39))