Wie konvertiert man eine Zeichenkette in eine Funktion in Clojure?

8

Ich habe an Clojure-Frage 135 Infix-Rechner gearbeitet, im Grunde ein vereinfachtes Infix-Präfix-Rechenwerk:

%Vor%

Ich habe das Problem wie angegeben gelöst. Aber das hat mich neugierig gemacht - was wäre, wenn das Argument als String geliefert worden wäre - wie würde ich es zum Laufen bringen?

%Vor%

Offensichtlich würde ich mit split beginnen und dann das Ergebnis durchkauen:

%Vor%

Aber wie würde ich das "+" in einen Funktionsaufruf umwandeln? Das wird nicht funktionieren:

%Vor%

Aufklärung gesucht ....

    
Sonia Hamilton 10.06.2012, 10:08
quelle

2 Antworten

14

Sehen Sie sich die Auflösungsfunktion an

%Vor%     
DanLebrero 10.06.2012, 10:13
quelle
2

Sie können load-string oder read-string verwenden. Das ist so etwas wie READ-FROM-STRING in lisp, das dem Prinzip 'Code is Data' folgt, die Zeichenfolge als Code behandelt - den Wert auswertet und zurückgibt.

%Vor%

Dann kannst du es einfach benutzen.

    
Randall 12.07.2012 10:31
quelle

Tags und Links