Frage

Ich habe mich selbst herausgefordert, alle Aufgaben in meiner Algorithmenklasse in gemeinsamer Lisp auszuführen.Ich bin in den Tag zu einem Lernen von Lisp und ich habe ein Hindernis getroffen.

Die Zuordnung besteht darin, eine Zusammenführungs-Sortierung zu erstellen, die in das Einfügen umgewandelt wird, wenn Sie eine beliebige Teilmengenlänge (TimSort) erreichen.Der Einfügungsabschnitt funktioniert perfekt, aber der geteilte Teil der Zusammenführung funktioniert nur, wenn sich das Programm zweimal trennen muss.Ich weiß, dass es mit den Wege-Listen in Lisp zu tun hat, bin ich einfach zu neu, um das Problem zu finden.

Ich denke, es trifft entweder eine unendliche Schleife ... Ich bin nicht sicher, denn wenn ich es mit Debug-Anweisungen ausführen, werden sie niemals gedruckt, wenn das Set zu viele Elemente hat.

Ich bettelte nicht hier um bestimmte Antworten oder für jemanden, um meinen Code zu schreiben.Vielleicht würde eine Erklärung oder ein Punkt in der richtigen Richtung viel helfen!

mein Code: generasacodicetagpre.

Hinweis: Dies ist Code, den ich geschrieben habe, nicht vom Internet abgerufen ... Sie können wahrscheinlich sagen, obwohl Haha

War es hilfreich?

Lösung

Sie werden von dynamisch ausgestischten Variablen gebissen.Wenn Sie SETF zum ersten Mal aufrufen, um A zu setzen, erstellen Sie implizit globale, dynamisch gespeicherte Variablen.Verwenden Sie stattdessen, um sie zu erklären.Lassen Sie Sie ermöglichen, dass Sie eine Liste der Ausdrücke aufnehmen, um einfach wie PROGN, so dass mein Hinweis darauf ist, dass Sie dies beheben können, indem Sie Ihre 2-Prognosen ändern können.Lassen Sie mich wissen, wenn Sie mehr als das brauchen, um sich zu lösen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top