【问题标题】:translate a matrix in scheme转换方案中的矩阵
【发布时间】:2015-11-18 18:30:49
【问题描述】:

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

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

任何意见将不胜感激!

【问题讨论】:

    标签: matrix scheme translate


    【解决方案1】:

    那就这么简单

    (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 如果这解决了您的问题,请单击复选标记考虑accepting it。这向更广泛的社区表明您已经找到了解决方案,并为回答者和您自己提供了一些声誉。没有义务这样做。否则,请随时与我们联系。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 2014-01-19
    • 1970-01-01
    相关资源
    最近更新 更多