Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
所以,我正在尝试添加列表的子列表。就像,如果我有这样的事情:
(add-pair '((1 4) (2 1)))
我希望它返回这个:
(5 3)
这是我到目前为止所拥有的:
(define pair-additions (lambda (ls) (map (lambda (n) (+ (car n) (cdr n)))ls)))
现在,它给了我一个错误,说输入不是数字。有人可以帮帮我吗?
你几乎明白了!这是问题所在:
(+ (car n) (cdr n))
要检索列表的第二个元素,您必须使用car的cdr,而不仅仅是cdr。为此更改上述行:
car
cdr
(+ (car n) (car (cdr n)))
或者为此,这是上一行的简短形式:
(+ (car n) (cadr n))
或者为此,它更易于阅读(如果您的 Scheme 解释器支持):
(+ (first n) (second n))
以上都是等价的。