Thanks Dave, I come out with that too... I put the wrong question honestly, but why the atom is not working I wonder ?
On Thursday, January 10, 2013 2:43:27 AM UTC+1, Dave Sann wrote: > > Create the atom in a let, in the function - so it's new and isolated > > better still - use an accumulator in the loop, not an atom. > > take, map an others are lazy. you may need to (doall ...) > > Dave > > > On Thursday, 10 January 2013 08:22:57 UTC+11, Simone Mosciatti wrote: >> >> Hi everybody, >> >> I was implementing a skip list, just for fun. >> >> I implemented the list and just to be sure that it were working I wanted >> to count how many steps it compute to find a value. >> SkipList --> http://en.wikipedia.org/wiki/Skip_list >> >> To do so I was using a atom, and the code looks like this: >> >> (def c (atom 0)) >>> >> >> >>> (defn search-n-count [s n] >>> (letfn [(search-fn [s n] >>> (reset! c 0) ;; I restart to count >>> (loop [s s] >>> (swap! c inc) ;; add a passage to the counter >>> (when (seq s) >>> (let [v (first s)] >>> (cond >>> (> v n) false >>> (== v n) n >>> (< v n) (recur (rest s)))))))] >>> [(take 1 (drop-while #(or (false? %1) (nil? %1)) (map search-fn s >>> (repeat n)))) @c])) ;;the take and everything looks horrible, but I didn't >>> find anything better, any ideas ? >> >> >> However the value that I get simply doesn't makes any sense, sometimes it >> looks like I get a value that could refer to the previous computation... >> >> Where is the problem ? >> >> If you don't get the code I can comment better the code, just let me >> know... >> >> Here the whole code and some example: https://gist.github.com/4497077 >> >> Thanks for any help :-) >> >> Simone >> > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en