Ich habe mich gefragt, ob es möglich ist, den in einer Clojure .clj
Quelldatei enthaltenen Code als Liste zu laden, ohne ihn zu kompilieren.
Wenn ich eine .clj
Datei als Liste laden kann, kann ich diese Liste ändern und sie in die gleiche Datei zurückschreiben, die dann wieder geladen werden kann.
(Vielleicht ist das eine schlechte Idee.) Weiß jemand, ob das möglich ist?
Ein etwas einfacheres Beispiel:
%Vor% Wobei slurp
Ihnen eine Zeichenkette gibt, read-string
gibt Ihnen eine nicht ausgewertete Form und load-string
gibt Ihnen das Ergebnis der Auswertung der Form.
Es ist keine schlechte Idee, es ist eine der wichtigsten Eigenschaften von Lisp, Code ist Daten. Sie können die CLJ-Datei als Liste lesen, indem Sie sie lesen, ändern und zurückschreiben.
%Vor%Dies liest sich selbst und schaltet boolesche Werte um und schreibt sie zurück.