【发布时间】:2019-10-02 01:11:34
【问题描述】:
我正在研究 Scheme 的基础知识,需要找到一种方法将两个列表的元素 (x1 + x2, y1 + y2, z1 + z2) 添加到一个列表中,使其变为 (x3, y3, z3 )!
我发现要减去两个列表的元素,我可以使用“remove”关键字,将 list2 元素添加到 list1 我可以使用“append”,是否有类似的东西可以将实际元素添加在一起?
这是我目前所拥有的:
(define (my-vector x y z) (list x y z ))
(define first-vector '(1 2 3))
(define second-vector '(4 5 6))
first-vector
second-vector
(define (get-x1 first-vector)(car first-vector))
(define (get-y1 first-vector)(car (cdr first-vector)))
(define (get-z1 first-vector)(car (cdr (cdr first-vector))))
(define (get-x2 second-vector)(car second-vector))
(define (get-y2 second-vector)(car (cdr second-vector)))
(define (get-z2 second-vector)(car (cdr (cdr second-vector))))
(define (combine-vectors first-vector second-vector)
(if (null? first-vector)
second-vector
(cons (car first-vector)
(combine-vectors (cdr first-vector) second-vector))))
(define combined-vectors (combine-vectors first-vector second-vector))
combined-vectors
(define subtract-vectors (remove '(first-vector) second-vector))
(+ (get-x1 first-vector) (get-x2 second-vector))
(+ (get-y1 first-vector) (get-y2 second-vector))
(+ (get-z1 first-vector) (get-z2 second-vector))
输出当前是
(list 1 2 3)
(list 4 5 6)
(list 1 2 3 4 5 6)
5
7
9
我想要 5 7 9 阅读(列表 5 7 9)!提前感谢您的帮助:)
【问题讨论】:
-
(map + (list 1 2 3) (list 4 5 6)) = (list 5 7 9) -
除了重命名局部变量,get-x1 和 get-x2 有什么区别?