Clojure 映射到向量列表的第一个元素
如何将函数映射到列表中向量的第一个元素上 所以我有Clojure 映射到向量列表的第一个元素,clojure,Clojure,如何将函数映射到列表中向量的第一个元素上 所以我有 (["1" "sometexthere" ...]["2" "somemoretext" ...] ....) 我需要使用read string将字符串转换为整数或长整数。您可以使用它来编写函数: (require '[clojure.edn :as edn]) (def items [["1" "sometexthere" ,,,] ["2" "somemoretext" ,,,] ,,,]) (map (comp edn/read-
(["1" "sometexthere" ...]["2" "somemoretext" ...] ....)
我需要使用read string将字符串转换为整数或长整数。您可以使用它来编写函数:
(require '[clojure.edn :as edn])
(def items [["1" "sometexthere" ,,,] ["2" "somemoretext" ,,,] ,,,])
(map (comp edn/read-string first) items)
;=> (1 2 ,,,)
您可以使用组合函数:
(require '[clojure.edn :as edn])
(def items [["1" "sometexthere" ,,,] ["2" "somemoretext" ,,,] ,,,])
(map (comp edn/read-string first) items)
;=> (1 2 ,,,)
如果只需要结果列表,可以将函数与first组合并映射它,正如@leetwinski在注释中建议的那样
(map #(clojure.edn/read-string (first %)) items)
如果您想恢复您拥有的结构,但使用函数映射的特定元素,您的朋友是:
(map #(update % 0 clojure.edn/read-string) items)
对于更复杂的转换,您可能还对的转换感兴趣。如果您只需要结果列表,您可以将函数与first组合并映射它,正如@leetwinski在评论中建议的那样
(map #(clojure.edn/read-string (first %)) items)
如果您想恢复您拥有的结构,但使用函数映射的特定元素,您的朋友是:
(map #(update % 0 clojure.edn/read-string) items)
对于更复杂的转换,您可能还对的转换感兴趣。我喜欢Elogent的comp解决方案,但是为了可读性,我更喜欢使用线程宏:
(map #(-> % first clojure.edn/read-string) items)
对于每个人来说,这只是我个人的喜好。我喜欢Elogent的comp解决方案,但是我认为为了可读性,我更喜欢使用线程宏:
(map #(-> % first clojure.edn/read-string) items)
每个人都有自己的偏好。映射clojure.edn/read-string first%items映射clojure.edn/read-string first%items