【发布时间】:2019-11-14 03:11:15
【问题描述】:
我正在尝试从城市哈希图中获取某些值来实现我的距离函数:
但每次我都说不支持的绑定形式:(latReturn record1)
这是我的 latReturn 和 longReturn 函数:
(defn latReturn [line]
(def x line)
(def y (string/split x #","))
(def my-map { :city (y 0)
:lat (y 1)
:long (y 2)
:country (y 3)
:iso2 (y 4)
:admin (y 5)
:capital (y 6)
:pop (y 7)
:popproper (y 8)
})
(read-string (my-map :lat))
)
(defn longReturn [line]
(def x line)
(def y (string/split x #","))
(def my-map { :city (y 0)
:lat (y 1)
:long (y 2)
:country (y 3)
:iso2 (y 4)
:admin (y 5)
:capital (y 6)
:pop (y 7)
:popproper (y 8)
})
(read-string (my-map :long))
)
我在这里做错了什么?
【问题讨论】:
-
输入
line是什么样的?还有为什么def在函数内?通常应该使用let绑定 -
Toronto,43.666667,-79.416667,Canada,CA,Ontario,admin,5213000,3934421 这是可以发送到 line 的行之一。另外,是的,我一直想将 def 更改为 let 绑定
-
definsidedefn在 clojure 中是一个禁忌。请改用let。
标签: function clojure hashmap call