Clojure error when calling swap! on the atom, trying to "connect this number",

I need a card in the atom that can track time as Unix timestamps.

So, in my main function, I have:

(defn -main [& args]
(println "Server is starting")
(def port (Integer/parseInt (first args)))
(def registry (atom {}))
(run-server port who-is-here registry))

And inside the run server, I have a call to add to the log:

(defn add-to-logged-in-registry
[registry]
(let [moments (Date.)
    right-now (.getTime moments)]
(swap! registry conj right-now)))

This last line gives me this error:

"main" java.lang.IllegalArgumentException: , ISeq : java.lang.Long    clojure.lang.RT.seqFrom(RT.java:487)    clojure.lang.RT.seq(RT.java:468)    clojure.lang.APersistentMap.cons(APersistentMap.java:39)    clojure.lang.RT.conj(RT.java:544)   at clojure.core $conj.invoke(core.clj: 83)    clojure.lang.Atom.swap(Atom.java:51)    clojure.core $swap_BANG_.invoke(core.clj: 2107)   at who_is_logged_in.core $add_to_logged_in_registry.invoke(core.clj: 39)   at who_is_logged_in.core $listen_and_respond.invoke(core.clj: 42)   at who_is_logged_in.core $run_server.invoke(core.clj: 52)   at who_is_logged_in.core $_main.doInvoke(core.clj: 76)    clojure.lang.RestFn.applyTo(RestFn.java:137)   at who_is_logged_in.core.main( )

?

REPL emacs, :

user>  (def registry (atom []))
#'user/registry

user>   (let [moments (Date.)
    right-now (.getTime moments)]
(swap! registry conj right-now))

[1345698128988]

user>   (let [moments (Date.)
    right-now (.getTime moments)]
(swap! registry conj right-now))

[1345698128988 1345698132472]
+5
1

conj - , . A . REPL .

swap! :

(def registry (atom{}))
(let [moments (java.util.Date.)
  right-now (.getTime moments)]                                                 
  (swap! registry conj [:time right-now]))
{:time 1345700872898}  
+6

All Articles