Matrix 在scheme中转换矩阵

Matrix 在scheme中转换矩阵,matrix,scheme,translate,Matrix,Scheme,Translate,转换矩阵时遇到问题,其中输入为两个列表,输出为将第二个列表添加到每个第一个列表,例如: (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)

转换矩阵时遇到问题,其中输入为两个列表,输出为将第二个列表添加到每个第一个列表,例如:

(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的每一辆车,但我只得到要输出的第一行


任何意见都将不胜感激

那很容易

(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))

那很容易

(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))

PedroRivas如果这解决了你的问题,请点击检查标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。否则,毫不犹豫地回到我们身边。@ PordRoVas如果这解决了你的问题,请点击检查标记来考虑。这向更广泛的社区表明,你已经找到了一个解决方案,并给回答者和你自己带来了一些声誉。没有义务这样做。否则,请立即回复我们。