clojure:如何从懒惰的seq中获取值?

Nic*_*ico 1 clojure lazy-sequences

我是clojure的新手,需要一些帮助来从懒惰序列中获取值.

您可以在这里查看我的完整数据结构:http://pastebin.com/ynLJaLaP 我需要的是标题的内容:

{: _content AlbumTitel2}
Run Code Online (Sandbox Code Playgroud)

我设法得到所有_content值的列表:

(def albumtitle (map #(str (get % :title)) photosets))
(println albumtitle)
Run Code Online (Sandbox Code Playgroud)

结果是:

({:_content AlbumTitel2} {:_content test} {:_content AlbumTitel} {:_content album123}   {:_content speciale} {:_content neues B5 Album} {:_content Album Nr 2})
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能获得每一个的价值:_content?

任何帮助,将不胜感激!

谢谢!

Leo*_*hin 7

你可以这么做

(map (comp :_content :title) photosets)
Run Code Online (Sandbox Code Playgroud)

关键字作为函数工作,因此组合comp将首先检索:title每个photoset 的值,然后进一步检索该:_content值的值.

或者,这可以写成

(map #(get-in % [:title :_content]) photosets)
Run Code Online (Sandbox Code Playgroud)