Sprachverlauf: Ursprung der Variablen 'it' in der Lese-Prüf-Schleife?

8

Einige interaktive Systeme, einschließlich Standard ML von New Jersey und GHC, bieten eine interaktive Toplevel-Schleife, in der Sie Ausdrücke eingeben und Ergebnisse sehen können. Eine nette kleine Annehmlichkeit ist, dass das Ergebnis des letzten Ausdrucks an die Variable it gebunden ist. Hier ist ein Beispiel von GHCi:

%Vor%

Ich versuche, den Ursprung dieser Konvention zu verfolgen. Kann jemand Beispiele für andere interaktive Systeme geben, die ähnliche Konventionen verwendet haben? Und date sie wenn möglich?

    
Norman Ramsey 24.07.2010, 20:45
quelle

4 Antworten

1

Ruby bietet dieselbe Convenience-Variable wie _ :

%Vor%

Interessanterweise ist auch die globale Variable $_ verfügbar: Es ist die letzte Eingabe, die von gets oder readline gelesen wurde.

    
jtbandes 24.07.2010 20:47
quelle
1

Viele häufige Lispes verwenden '*', um frühere Ergebnisse zu bezeichnen. EG '*' ist das letzte Ergebnis, '**' ist das Ergebnis vor dem letzten, etc:

%Vor%

Python hat '_', was das letzte Ergebnis ist:

%Vor%

Erlang hat eine Funktion 'v ()':

%Vor%     
srparish 24.07.2010 20:50
quelle
1

Nicht eine REPL, aber Hypertalk (die Sprache der Hypercard) erlaubt "es" in einigen Kontexten. Ich bin mir nicht sicher über den genauen Anwendungsfall, da ich nie Hypercard verwendet habe, aber es scheint eine ähnliche Idee zu sein. Das datiert es bis 1986 oder so.

    
ergosys 24.07.2010 21:10
quelle
0

Es scheint, dass die erste Instanz einer REPL mit History-List-Funktionalität BBN LISP war. 1972.

"In BBN-LISP werden jede Eingabe, die vom Benutzer eingegeben wird, und der Wert der entsprechenden Operation automatisch von der P. A. in einer globalen Datenstruktur gespeichert, die als Verlaufsliste bezeichnet wird." Ich konnte keine Dokumentation darüber finden, wie man tatsächlich auf diese Werte zugreift, sondern nur, wie man vorherige Ereignisse mit REDO wiederholt. (Siehe Ссылка )

Ich konnte auch kein einziges Keyword für den Zugriff auf den letzten Verlaufswert in seinem Nachfolger Interlisp finden, möglicherweise aufgrund des Mangels an Google-Fu.

    
mwhite 27.07.2010 09:18
quelle