pracuję na Clojure question 135 Infix Calculator zasadniczo uproszczony Infix poprzedzający arytmetycznego kalkulatora:Jak przekonwertować ciąg znaków na funkcję w Clojure?
(= 7 (__ 2 + 5))
I rozwiązać problem zgodnie ze specyfikacją. Ale to mnie zastanowiło - co, jeśli argument został dostarczony jako ciąg znaków - jak mógłbym go uruchomić?
(= 7 (__ "2 + 5"))
Oczywiście zacząłbym z podzielić, potem chrupać przez wynik:
(clojure.string/split "2 + 5" #"\s")
user=> ["2" "+" "5"]
Ale w jaki sposób przekonwertować znak „+” do wywołania funkcji? To nie będzie działać:
("+" 2 5)
user=> java.lang.ClassCastException: java.lang.String cannot be
cast to clojure.lang.IFn <snip>
Oświecenie szukał ....
Świetnie, dzięki dAni! –