Clojure报错“无法解析符号update”的原因咨询
为什么Clojure无法识别update函数?
这个问题我碰到过!原因很简单——你用的Clojure版本太低了!
update函数是在Clojure 1.7版本才正式加入核心库clojure.core的,如果你的REPL运行的是1.7之前的旧版本,自然会抛出“无法解析符号”的错误。
解决办法有两个:
- 升级Clojure版本:直接把你的Clojure环境升级到1.7或更高版本,这样就能正常使用
update函数了,这是最省心的方案。 - 用替代函数实现相同逻辑:如果暂时没法升级版本,可以用Clojure旧版本就支持的
assoc函数来改写代码,实现同样的替换效果。你的函数可以改成这样:
(defn transform-data [] (mapv (fn [row] (assoc row 1 (replacements (row 1)))) data))
另外提个小建议:test是Clojure的内置函数,虽然你可以自己定义同名函数,但容易引发潜在的冲突,最好换个像transform-data这样的名字哦~
内容的提问来源于stack exchange,提问作者ThisIsHard
相关产品推荐
相关产品推荐

