我正在尝试完成这个练习题,以便在计划方面做得更好,但对于我到目前为止的代码,它给了我一个警告说:"编译时警告:可能在调用中可能出现错误的参数计数(缺点) (列表(车l1)(车l2))"
我一直在看这段代码,但仍然无法弄清楚我做错了什么。
define (zip l1 l2)
(if (or (null? l1) (null? l2))
(cons (list (car l1) (car l2))
(zip (cdr l1) (cdr l2)))))
(define (map-binary func l1 l2)
(map (lambda (l2) (apply func l2)) (zip l1 l2)))
答案 0 :(得分:1)
对cons
的调用没有任何问题,但你错过了zip
过程的第一个左括号和基本情况,这将结束递归:
(define (zip l1 l2)
(if (or (null? l1) (null? l2))
'() ; this was missing
(cons (list (car l1) (car l2))
(zip (cdr l1) (cdr l2)))))