Was ist der Unterschied zwischen der Verwendung von cons, um ein Element zu einer Liste zu kombinieren, und der Verwendung von cons, um eine Liste mit einem Element im Schema zu kombinieren?
Außerdem, wie genau funktionieren die Nachteile? Fügt es am Ende der Liste oder am Anfang ein Element hinzu?
Danke!
Das primitive cons
klebt einfach zwei Dinge zusammen, die Tatsache, dass einige dieser Dinge als Listen betrachtet werden, ist nebensächlich. Dies funktioniert zum Beispiel und erzeugt ein Paar (auch bekannt als cons-Zelle ):
Wenn nun das zweite Argument für cons
zufällig eine Liste ist, dann wird das Ergebnis eine neue Liste sein, und das erste Argument für cons
wird am Anfang der alten Liste hinzugefügt. Mit anderen Worten: Um eine Liste zu erstellen, benötigen Sie eine Liste, auch wenn sie leer ist:
Aber wenn das zweite Argument für cons
nicht eine Liste ist, dann ist das Ergebnis nur ein Paar oder eine falsche Liste , was bedeutet, dass es nicht t Ende in '()
, wie es sollte, um eine Liste zu sein:
Nur zur Klarstellung, Sie können cons
nicht verwenden, um Elemente am Ende einer Liste hinzuzufügen. Der übliche Weg, um eine Liste zu erstellen, geht von rechts nach links und fügt Elemente in umgekehrter Reihenfolge an der Kopfposition hinzu. Wenn Sie beispielsweise die Liste '(1 2 3)
erstellen möchten, müssen Sie cons
die Elemente in der Reihenfolge% co_de verwenden %:
Für die seltenen Fälle, in denen Sie am Ende ein Element hinzufügen müssen (und glauben Sie mir, dies bedeutet im Allgemeinen, dass Sie den Algorithmus falsch finden), können Sie 3 2 1
verwenden, das zwei Listen