Kann mir bitte jemand erklären, was die Variationen von car
und cdr
im Schema bewirken?
Wenn ich richtig bin, gibt car
das erste Element in der Liste zurück. cdr
gibt eine Liste ohne das erste Element zurück.
Ich bin verwirrt über die anderen Variationen von diesen, insbesondere Dinge wie cadar
, caddr
, cddr
, etc.
Sagen Sie, ich habe dies als Zufallsbeispiel:
%Vor% (car X)
würde a
erzeugen, (cdr X)
würde (b (c d e))
erzeugen, cadr
würde b
erzeugen . Aber ich weiß nicht, wie ich auf eine andere Variation von car
/ cdr
wie cadar
schließen kann.
Sie können die Bedeutung dieser Funktionen ableiten, indem Sie ihren Namen analysieren:
zwischen dem ersten Buchstaben ("c") und dem letzten ("r"), ein "a" bedeutet "das Auto von" und ein "d" bedeutet "das cdr von".
Also:
cadr
ist "das Auto der CDR", cddr
ist die Cdr der Cdr, cadar
ist das "Auto der cdr des Autos" (also muss der Parameter eine Liste sein), Am einfachsten ist es, es in einen Schema-Interpreter einzugeben:
%Vor% Wenn Sie mehr als ein a
oder d
haben, wie Sie aus dem Beispiel cadr
sehen können, können Sie es rückwärts lesen. Nimm zuerst das cdr
(d) des Arguments, dann nimm das car
(a) vom Ergebnis und so weiter, bis du zum ersten kommst.