Löschen-element aus der Liste in Scheme

Ich habe die Liste in dieser form

( (1 3) (2 2) (3 1) (4 5) (5 1)))

und ich möchte ein Element löschen lassen sagen (3 1)

So wird das Ergebnis

( (1 3) (2 2) (4 5) (5 1)))

Ich geschrieben habe, so etwas wie dieses, und ich weiß nicht, warum es nicht richtig läuft.

(define (deleteItem list item)
  (cond
    ((equal? item (car  list)) (cdr list))
    (cons (car  list)(deleteItem(cdr list) item))))
Beachten Sie, dass die Schläger integrierten remove (was einige der Antworten, die sich darauf beziehen) entfernt nur die erste vorkommen des Elements. Wenn Sie entfernen wollte alle von Ihnen, Sie müssten remove*. Ihre aktuelle code näher an remove als remove*, aber es ist nicht klar, ob Sie sich entfernen wollte, nur das erste vorkommen, oder alle von Ihnen.

InformationsquelleAutor dionysosz | 2013-11-11

Schreibe einen Kommentar