Was war ein Grund, ein gepunktetes Paar in LISP einzuführen?

8

Weiß jemand, was der historische Grund war, einen LIST mit gepunktetem Paar einzuführen, während der bestehende Listentyp alles abdeckt?

Ich bin auch daran interessiert, weil punktierte Paare mich oft verwirren.

    
bananov 02.12.2011, 15:41
quelle

3 Antworten

14

Lesen Sie McCarthy's 1960, "Rekursive Funktionen symbolischer Ausdrücke und ihre Berechnung nach Maschinen, Teil I" .

Er beginnt mit der Definition von S-Ausdrücken. Eine der Regeln ist, dass, wenn e1 ein S-Ausdruck und e2 ein S-Ausdruck ist, dann & lt; e1. e2 & gt ;, das punktierte Paar, ist ebenfalls ein S-Ausdruck.

Einige Zeilen später definiert er die Listennotation als Abkürzung für einen Ausdruck, der aus einer Kette von Punkten besteht.

Dies war das Papier, das zuerst definierte, was schließlich LISP werden sollte. Es wurde keine eigentliche Programmiersprache, bis Steve "Slug" Russell den ersten Interpreter implementierte.

    
John R. Strohm 02.12.2011, 16:42
quelle
5

Vorhandener cons Typ deckt alles ab (listenbezogen). Die Punktierte-Paar-Notation ist lediglich eine Syntax für ein cons literal.

    
JB. 02.12.2011 15:44
quelle
2

Wie Sie in den Kommentaren zu Ihrer Frage lesen können, wurde das punktierte Paar nicht neben einem bereits vorhandenen Listentyp eingeführt. Stattdessen wurde es als anfängliche Datenstruktur eingeführt, und Listen werden in gepunkteten Paaren implementiert.

Was die Frage warum das gepunktetes Paar anbetrifft, glaube ich, dass es von der Hardware geleitet wurde, auf der das ursprüngliche LISP-System implementiert war: das IBM 704. Wie man in der Wikipedia-Artikel über car und cdr , es hatte ein 36-Bit-Wort, auf das in vier Teilen zugegriffen werden konnte: zwei 15-Bit- und zwei 3-Bit-Teile.
Bei einer Hardware wie dieser ist es ganz natürlich, eine 15-Bit-Adresse in jeden der beiden 15-Bit-Teile eines Maschinenworts zu schreiben, und voilà, Sie haben ein "gepunktetes Paar".

Siehe auch die Geschichte von Lisp , für weitere Informationen über das Design des System.

    
eriktous 03.12.2011 01:49
quelle

Tags und Links