【发布时间】:2015-07-21 08:07:17
【问题描述】:
我已经学习 Clojure 几个星期了。我知道数据结构和一些功能的基础知识。 (我正在阅读 Clojure 编程书)。
我坚持以下。我正在编写一个函数,它将小写提供的地图的键。
(defn lower-case-map [m]
(def lm {})
(doseq [k (keys m)]
(assoc lm (str/lower-case k) (m k))))
这是我想要的,但我如何返回地图? def 正确吗?
我知道这行得通
(defn lower-case-map [m]
(assoc {} :a 1))
但上面的doseq 似乎造成了问题。
【问题讨论】:
-
你不应该在 Clojure 的函数内部使用
def。def只能在顶层使用。改用let来定义局部变量。
标签: clojure