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)

しかし、リストがnullになったときにどうすればよいかわかりません。

ちょっとしたアドバイスやアイデアを教えてください。どうもありがとうございました!

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 に答える