Bonjour la liste,
j'ai une question qui me travaille et je viens chercher un peu d'aide ici.
J'ai une fonction qui parse une page html avec cgrand/enlive et qui sort une lazy seq avec les éléments trouvés. Et cela marche:
(defn page->tags
[page]
(filter (comp not nil?)
(map :content
(-> page
(html/select [:span#tags])
first
:content)))
=> (("coffee") ("chocolate"))
C'est une lazy seq qui contient des lazy seq visiblement:
(type (page->taglist mypage))
=> clojure.lang.LazySeq
(type (first (page->taglist mypage)))
=> clojure.lang.LazySeq
Du coup si je veux faire un into #{} j'obtiens
=> #{("coffee") ("chocolate")}
au lieu de #{"coffee" "chocolate"} que j'espère.
(type (first (into #{} (page->taglist mypage))))
clojure.lang.LazySeq
Je me doute qu'il faut faire un coup de apply quelque chose ou défaire la lazyness de map dans la fonction originale mais je patauge encore un peu.
Est-ce qu'une personne aurait une idée ?
Merci !
-- Ben