0

这是我的功能:

(define (remove-digit digit list)
  (cond ((null? list ...))
    (( = (car list) digit) (remove-digit digit (cdr list)))
      (else (cons (car list) (if (null? list) (cons(remove-digit digit (cdr list))))))is:

它应该这样做:

(1 2 4 5 2 5 6) 在 (remove-digit 2 list) 之后应该是 (1 4 5 5 6)

但我想不出当列表变为空时该怎么办。

你能给我一点帮助或一些想法吗?非常感谢你!

4

1 回答 1

1

返回一个空列表(或list自身)。这是您的功能的基本情况。

(define (remove-digit digit list)
  (cond ((null? list) list)
        ((= digit (car list)) (remove-digit digit (cdr list)))
        (else (cons (car list) (remove-digit digit (cdr list))))))

要推断基本情况,请考虑remove-digit以空列表作为参数的“最小”情况。

(remove-digit digit '())

对于任何一种供应的价值,它'()显然应该返回。digit

于 2012-11-07T23:05:37.453 回答