1

私は今何時間も問題に苦しんでいます... 2 つのシーケンスからの値とのリンクを構築したいと考えています。

(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/名前に対して):

<a href="http://example.com?id=72157632764328569">AlbumTitel2</a>

そして、それはシーケンスまたはマップである必要があります...ただし、反復できるものは何でも。

これをアーカイブする方法を知っている人はいますか?

ありがとう!

4

2 に答える 2

2
(map #(str "<a href=\"http://example.com?id="
           %1
           "\">"
           %2
           "</a>") photoset-ids photoset-names)
于 2013-08-07T20:59:21.170 に答える
1

次の 2 つの方法のいずれかでマップを使用できます (現時点では 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>"))

複数のリストの項目を 1 つのリスト内のペアに結合することは、一般に「圧縮」と呼ばれます。この回答(map vector ...)で見つけた

于 2013-08-07T20:57:47.660 に答える