Clojure - Reference Values

Reference values are another way Clojure can work with the demand to have mutable variables. Clojure provides mutable data types such as atoms, agents, and reference types.

Following are the operations available for reference values.

Sr.No. Operations & Description
1 ref

This is used to create a reference value. When creating a reference value, there is an option to provide a validator function, which will validate the value created.

2 ref-set

This function is used to set the value of a reference to a new value irrespective of whatever is the older value.

3 alter

This function is used to alter the value of a reference type but in a safe manner. This is run in a thread, which cannot be accessed by another process.

4 dosync

Runs the expression (in an implicit do) in a transaction that encompasses expression and any nested calls.

5 commute

Commute is also used to change the value of a reference type just like alter and ref-set.