0

私は道の始まりにいます。consこの部分を2~3時間理解しようとしましたが、うまくいきませんでした。この短所の部分が理解できませんでした。'a d'結果に応じてどのように組み合わせますか?

(define remv
  (lambda (x ls)
    (cond
      [(null? ls) '()]
      [(eqv? (car ls) x) (remv x (cdr ls))]
      [else (cons (car ls) (remv x (cdr ls)))])))

次のような入力を入れると:

> (remv 'b '(a b b d)) 

私は得る(a d)

しかし、それがどうなったのか理解できませんでした'a d'

4

1 に答える 1

0

xリストからすべての を削除するには、次のls3 つのケースを考慮する必要があります。

  1. lsが空である場合、結果も空になります。
  2. の最初の要素lsは に等しいxです。この場合、それをドロップして、すべてのxesを削除した後にリストの残りを返します。
  3. の最初の要素はlsとは異なりxます。その場合、その要素を保持し、xes を含まないリストの先頭に貼り付けます。
于 2015-04-11T21:46:20.967 に答える