Hey,
it's not how you'd usually do things in Clojure and I'd consider the use of
an atom in this place as "wrong".
I was struggling with Clojure in the beginning too and my code looked
pretty much like yours, but the faster you get into the Clojure mindset the
easier it will be.
This might be hard to understand at first but if you wrap your head arround
whats happening you are halfway there to understanding Clojure:
(defn readf [file]
(with-open [r (clojure.java.io/reader file)]
(->> (line-seq r)
(map #(re-find #"\w+\.\w+" %))
(into []))))
(defn -main []
(let [urls (readf fich)]
(println urls)))
Try to use atoms for what they are meant (multi-threaded, concurrent code),
not to emulate mutable local state.
HTH,
/thomas
On Thursday, August 14, 2014 8:33:53 PM UTC+2, [email protected] wrote:
>
> Just solved the problem by prepending at at-sign, in both cases:
>
> (
>
>
> *nth @urls 10)(doseq [x @urls] (println x))*
>
>
>
> Le jeudi 14 août 2014 18:05:25 UTC+2, [email protected] a écrit :
>>
>>
>> Hello,
>>
>> I am trying to add URLs contained in a text file (eg. apple.com,
>> ibm.com...), to a global vector called url2, but to no avail, the vector
>> remains empty.
>>
>> Any suggestions would be greatly appreciated.
>>
>> Many thanks.
>>
>> Philippe
>>
>>
>> (def fich "data.txt")
>>>
>>> (def urls2 (vec nil))
>>>
>>> (defn readf [file]
>>> (let [x (vec nil)]
>>> (with-open [r (clojure.java.io/reader file)]
>>> (doseq [line (line-seq r)]
>>> (conj urls2 (re-find #"\w+\.\w+" line))))))
>>>
>>>
>>> (defn -main []
>>> (do
>>> (readf fich)
>>> (println urls2)))
>>>
>>
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.