任何人都可以告诉我
的结果(remove (list 1 2 3) 1)
其中remove
由
(define (remove ls x)
(let loop((ls0 ls) (ls1 '()))
(if (null? ls0)
(reverse ls1)
(let ((ls2 (if (eqv? x (car ls0))
ls1
(cons (car ls0) ls1))))
loop (cdr ls0) ls2))))
是()
而不是(2 3)
?
答案 0 :(得分:2)
您的递归调用错误,请将其替换为
(loop (cdr ls0) ls2))))