我正在编写一个以线性时间运行的过程,它返回不属于两组的任何数字。我目前的代码是
(define (set-diff setA setB)
(define (iter A B result)
(if (or (null? A) (null? B))
(reverse result)
(if (>= (car A) (car B))
(iter (cdr A) (cdr B) '() )
(if (< (car A) (car B))
(cons (car B) result (iter (cdr A) (cdr B) '() ))))))
(iter setA SetB '()))
不断出现的问题是,当这个函数运行时,比如通过任意测试用例(set-diff '(1 5 7 9) '(1 7 8 9 10)) ; (5)
,我收到一条错误消息,说我用错误数量的参数调用了该过程。