Erklärung von CAR, CDR, CADAR usw

8

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.

    
Targeter 10 28.10.2012, 19:57
quelle

2 Antworten

16

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),
  • usw.
didierc 28.10.2012, 20:01
quelle
4

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.

    
Olaf Dietsche 28.10.2012 20:03
quelle

Tags und Links