Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 映射到向量列表的第一个元素_Clojure - Fatal编程技术网

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