如何在 Clojure 中将字符串转换为函数?

2024-06-20

我一直在努力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(使用前将#替换为@)

如何在 Clojure 中将字符串转换为函数? 的相关文章

随机推荐