【发布时间】:2017-07-05 10:28:14
【问题描述】:
我是新的 clojure,在运行此代码时无法理解确切的问题
(def my-map {name "Srini" empid "10000"})
收到此错误:
CompilerException java.lang.RuntimeException: Unable to resolve symbol: empid in this context, 正在编译:(/Users/srini/Downloads/clojureexample/my-stugg/src/my_stugg/corecomponents.clj:95:1)
(def my-map {name "Srini" :empid "10000"})
运行成功。
我在第一行做错了什么?
(def my-map {name "Srini" empid "10000"})
【问题讨论】:
-
name是来自核心的 clojure 函数。您希望在地图中一直使用关键字。 -
@cfrick 你的意思是地图键应该是关键字(:)?
-
是的。 Clojure 允许您创建以符号和变量作为键的映射,但大多数时候这不是您想要的。
-
@cfrick 当我运行这段代码时,同样的问题来了 (def my-map {flower1 :flower1 flower2 :flower2})
-
@cfrick 我看不出此代码有任何问题
(let [{flower1 :flower1 flower2 :flower2} {:flower1 "red" :flower2 "blue"}] (str "The flowers are " flower1 " and " flower2))
标签: clojure