Wie schreiben Sie eine scheme-Funktion, die zwei Listen und gibt vier Listen
Ich habe 2 Listen von Elementen '(a b c) '(d b-f) und möchte, um Unterschiede zu finden, union, intersection in einem Ergebnis. Ist das möglich? Wie?
Schrieb ich eine member-Funktion, die prüft, ob es ein Auto von der ersten Liste in die zweite Liste, aber ich kann nicht werfen ein Mitglied der neuen Liste.
(define (checkResult lis1 lis2)
(cond...........
))
(checkresult '( a b c) '(d b f))
Mein Ergebnis sollte sein (( a c) (d f) (a b c d f) (b))
.
Hausaufgaben? Sollten Sie einen 'Hausaufgaben' tag wenn also.
InformationsquelleAutor | 2009-04-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie andere gesagt haben, alles, was Sie tun müssen, ist, erstellen Sie separate Funktionen zum berechnen der Kreuzung, union, und Subtraktion der beiden Sätze, und rufen Sie von checkresult:
Hier sind einige Beispiel Vereinigung, Schnitt und Subtraktion Funktionen:
Hinweis: da diese sets und die Reihenfolge egal, die Ergebnisse sind nicht sortiert. Auch die Funktionen davon aus, dass die Eingänge legt, und daher nicht alle doppelten Kontrolle über das hinaus, was erforderlich ist für die union.
Und es war Spaß zu tun! Ich werde alle Fragen beantworten, die ich kann, einschließlich Hausaufgaben. Es ist nicht meine Aufgabe, sicherzustellen, dass die Studenten nicht betrügen.
Dank, den ich geschrieben habe, intersect und union aber habe ich Sie wirklich nicht wissen, wie Sie anrufen und schreiben Sie eine neue Liste habe ich es Dank..
Und eines Tages, wenn diese Leute Ihre Mitarbeiter? Es geht nicht um Betrug, es geht darum, Menschen zu helfen eine Ausbildung zu bekommen, wie Probleme zu lösen, ohne nur zu Fragen, Sie tun es für Sie. Es ist so viel Spaß, Ihnen zu helfen, lernen, wie es ist, code für Sie (und es ist more herausfordernd). Nur zu beantworten, als eine "wie sollte ich das denken?" Frage anstatt "was soll ich geben?" - Frage. Für Beispiel, siehe meine Antwort an stackoverflow.com/questions/623435/project-euler-problem-233/...
Diese Lösung leidet unter zahlreichen Problemen: - Schema hat
member
undmemq
eineequal?
überprüfen ist in der Regel mehr erwartet, wir verwendenelse
und nicht#t
imcond
Ausdrückenintersect
undsubtract
sind kompliziert eine ineffiziente, und schließlich-wenn das Ziel ist die Rückkehr der vier Ergebnisse, und dann können Sie alle berechnet werden, die in einer einzelnen Schleife.InformationsquelleAutor Kyle Cronin
Sicher, es ist möglich. Angenommen, Sie haben die Funktion zum berechnen der Unterschiede, union Kreuzung etc:
InformationsquelleAutor tomjen
Sicher, es ist möglich. Hier sind ein paar Tipps:
InformationsquelleAutor Charlie Martin
Oben von Charlie Martin und tomjen die Antworten, ich habe mit dieser Quelle:
Union, Intersection und Difference
Durchführung der verschiedenen Funktionen finden, die mit schönen Erklärungen.
InformationsquelleAutor rpr