我一直在努力Clojure 问题 135 中缀计算器 http://www.4clojure.com/problem/135,基本上是一个简化的中缀到前缀算术计算器:
(= 7 (__ 2 + 5))
我按照指定解决了问题。但这让我想知道 - 如果参数作为字符串提供怎么办 - 我将如何让它工作?
(= 7 (__ "2 + 5"))
显然我会从split,然后仔细研究结果:
(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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)