我一直在研究Clojure question 135 Infix Calculator ,基本上是一个简化的中缀到前缀算术计算器:
(= 7 (__ 2 + 5))
我按照指定解决了问题。但这让我想知道 - 如果参数作为字符串提供怎么办 - 我如何让它工作?
(= 7 (__ "2 + 5"))
显然我会从分割开始,然后仔细研究结果:
(clojure.string/split "2 + 5" #"\s")
user=> ["2" "+" "5"]
但是我如何将“+”转换为函数调用?这是行不通的:
("+" 2 5)
user=> java.lang.ClassCastException: java.lang.String cannot be
cast to clojure.lang.IFn <snip>
寻求启迪......
最佳答案
查看解析函数
((resolve (symbol "+")) 1 2)
关于clojure - 如何在 Clojure 中将字符串转换为函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10967851/