我现在挣扎了几个小时的问题......我想用两个序列的值建立一个链接。
(doseq [item photoset-name] (prn item ))
(doseq [item-name photoset-id] (prn item-name ))
输出:
"AlbumTitel2"
"test"
"AlbumTitel"
"album123"
"speciale"
"neues B5 Album"
"Album Nr 2"
"72157632764328569"
"72157632769231530"
"72157632769092584"
"72157632768156156"
"72157632762740183"
"72157632724688181"
"72157632760876608"
现在我想构建一个这样的链接(对于每个id / name):
<a href="http://example.com?id=72157632764328569">AlbumTitel2</a>
它应该是一个序列或地图......我可以迭代的任何东西。
有没有人知道如何存档?
谢谢!
答案 0 :(得分:2)
(map #(str "<a href=\"http://example.com?id="
%1
"\">"
%2
"</a>") photoset-ids photoset-names)
答案 1 :(得分:1)
您可以尝试以两种方式之一使用地图(我目前没有Clojure方便,所以我无法验证):
(map #(prn "<a href=\"" %1 "\">" %2 "</a>") item item-name)
或
(doseq [pair (map vector item item-name)]
(prn "<a href=\"" (first pair) "\">" (second pair) "</a>"))
编辑:小心使用map
;它很懒,所以如果你不使用它返回的结果那么它实际上可能不会被运行!
这可能也有效:
(doseq [[url title] (map vector item item-name)]
(prn "<a href=\"" url "\">" title "</a>"))
将来自多个列表的项目组合成单个列表中的对通常称为“压缩”。我在this answer
中找到的(map vector ...)