Come dovrei ottenere qualcosa di simile a quanto segue ?:Come valuti una stringa come espressione di clojure?
(evaluate-text "(+ 1 2)") ; resolves to 3
Come dovrei ottenere qualcosa di simile a quanto segue ?:Come valuti una stringa come espressione di clojure?
(evaluate-text "(+ 1 2)") ; resolves to 3
(load-string "(+ 1 2)")
Come simile ha a che essere? eval
opere di Clojure sulle liste, in modo da:
(eval (list + 1 2)) #=> 3
user> (eval (read-string "(+ 1 2)"))
3
probabilmente non dovrebbe mai bisogno di fare questo. Macro e fns rendono questo tipo di cose inutili il 99% delle volte. Questo è abbastanza fragile e può essere pericoloso se queste stringhe provengono dall'input dell'utente e così via.
Beh, voglio fare qualcosa di radicalmente pericoloso: un chatbot REPL. –
C'è un clojurebot in #clojure. –
load-string fa esattamente quello che sta cercando – Abhijith
Conosco la valutazione, ma non penso che funzioni per me. Voglio davvero valutare una "stringa" –