/ / Gibt es eine Möglichkeit, den Lademodus für Dateien in DrRacket zu verwenden? - Schema, Racket, Read-Eval-Print-Schleife

Gibt es eine Möglichkeit, den Lade-Modus für Dateien in DrRacket zu verwenden? - Schema, Schläger, Read-Eval-Print-Loop

Ich möchte DrRacket auf dieselbe Weise verwendenes funktioniert für einige der "alten Sprachen". Insbesondere möchte ich eine Datei durchgehen, als wäre sie eine Folge von Befehlen, die an den Interpreter ausgegeben wurden, und nicht als Modul.

Grundsätzlich möchte ich mindestens eine Datei im Lademodus ausführen. Ich bin mir jedoch nicht sicher, ob dies mit DrRacket möglich ist.

Im Idealfall könnte ich:

* Geben Sie eine Datei an, die die Sprache einstellt und möglicherweise einige Module lädt, die standardmäßig beim Start ausgeführt werden.

* Laden Sie dann eine Datei, die kein Modul ist (und keine #lang-Spezifikation hat) und führen Sie sie aus.

Es wäre auch nett (da ich Scheme verwenden möchte), wenn es Redefinitionen zulassen würde, genau wie die alten Sprachen

Antworten:

2 für die Antwort № 1

Ja, das können Sie, und in der Tat werden die "Legacy Languages" (und "Teaching Languages") eigentlich nur als implementiert DrRacket-Plugins. Sie können sie aus Ihrer Kopie von DrRacket entfernen und sogar neue hinzufügen.

Es gibt verschiedene Möglichkeiten, dies zu tun, je nachdem, ob Sie mit a einverstanden sind #lang (oder #reader) in der Datei gespeichert. Wenn Sie nicht sind, ist es immer noch möglich, Sie müssen nur verwenden drracket:get/extend:extend-unit-frame um Ihr Tool zu DrRacket hinzuzufügen, und möglicherweise drracket:get/extend:extend-definitions-text um das Definitionsfenster einfach zu erweitern.

Ich werde nicht auf die Details eines generischen DrRacket-Plugins eingehen, das in eine andere Frage gehört ... auch das DrRacket-Plugins-Handbuch hat die Informationen, die Sie brauchen.1 Ich möchte Sie jedoch darauf hinweisen, wie Sie DrRacket im Lademodus verwenden können.

Besuche die racket/load Sprache. Es ist so konzipiert, dass jeder Ausdruck in der obersten Ebene so ausgeführt wird, als würden Sie ihn bei einer REPL eingeben. Ich finde es sehr nützlich, um die Unterschiede zwischen dem Racket-Modul und den Interaktionen auf der obersten Ebene zu testen.

Wenn Sie kein DrRacket-Plugin erstellen, müssen Sie natürlich noch Folgendes eingeben:

#lang racket/load

oben in Ihrer Datei, aber Sie erhalten ansonsten einen "Legacy-Modus".

1Sollte dies nicht der Fall sein, stellen Sie bitte weiterhin Fragen, und natürlich lieben wir immer die Hilfe von jedem, der bereit ist, dazu beizutragen. <3