1

リストと変数がある場合に要素を削除する方法は理解していますが、別のリストを使用してリストから要素を削除する方法はありますか? 例: (list 1 2 3 4 5)(list 1 2 3) yields (list 4 5)

4

2 に答える 2

1

変数の場合と同じですが、equalの代わりにmember関数を使用する必要がありますか?:

#lang racket
; remove every element included in rlist from flist
(define (remove-list rlist flist)
  (if (empty? flist)
      '()
      (let ((c (car flist)))
        (if (member c rlist) ; <====
            (remove-list rlist (cdr flist))
            (cons c (remove-list rlist (cdr flist)))))))

(remove-list (list 1 2 3) (list 1 2 3 4 5))
=> '(4 5)
于 2013-03-20T19:16:04.733 に答える
1

Racket では、これは非常に単純です。remove*組み込みの手順を使用するだけです。

(remove* (list 1 2 3) (list 1 2 3 4 5))
=> '(4 5)
于 2013-03-20T14:06:04.973 に答える