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 Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine eingebaute Funktion dafür, es nennt sich
entfernen
:... Aber ich denke, Sie implementieren müssen, um es von Grund auf. Einige Vorschläge für Ihren code:
list
als parameter den Namen, das werde Zusammenstoß mit einem built-in-Funktion. Nennen wir eslst
stattelse
Teil in die Letzte BedingungMit allen oben genannten fixes statt, die Prozedur funktioniert:
InformationsquelleAutor Óscar López
Das Verfahren ist bereits vorhanden:
Sonst deine Vorgehensweise sollte wie folgt Aussehen:
Die Sie verpasst haben:
solltest du auch nicht verwenden Liste als variable Namen, weil es die Schatten der build-in-Verfahren
list
(aber es funktioniert).InformationsquelleAutor uselpa
1) wenn betrachten Sie die input-Liste können Sie eine einfache Liste, oder Sie wollen einfach nur zu löschen das Element in der obersten Ebene einer verschachtelten Liste
zum Beispiel:
wie wir sehen können, das 2. Beispiel von oben, es einfach zu löschen das Element in der obersten Ebene der verschachtelten Liste, innerhalb der inneren Liste haben, nehmen wir nicht ändern.
dieser code sollte sein:
2) wenn betrachten Sie die input-Liste kann eine verschachtelte Liste
Beispiel:
löschen und das element 2 in der input-Liste
und der code sollte sein:
InformationsquelleAutor Jie