< Clojure Programming < Examples < API Examples
ref
See ref-set for more.
user=> (def cross-thread-mutable (ref {}))
#'user/cross-thread-mutable
user=> cross-thread-mutable
#<Ref clojure.lang.Ref@1a5f739>
user=>
ref-set
user=> (def foo (ref 0))
#'user/foo
user=> foo
#<Ref clojure.lang.Ref@7c2479a4>
user=> @foo
0
user=> (ref-set foo 1)
java.lang.IllegalStateException: No transaction running (NO_SOURCE_FILE:0)
user=> (dosync (ref-set foo 1))
1
user=> @foo
1
deref
@
(deref (ref 5))
@(ref 5)
@(atom 5)
(with-local-vars [x 5] @x)
@(agent 5)
delay
force
(def df (delay (println "hello")))
(println "world")
--> world
(force df)
--> hello
commute
(def employee-records (ref #{}))
(dosync (commute employee-records conj "employee"))
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.