namespaces in clojure are used to differentiate classes into separate logical spaces just like in java. consider the following statement.
(:require [clojure.set :as set])
in the above statement, ‘clojure.set’ is a namespace which contains various classes and methods to be used in the program. for example, the above namespace contains the function called map-invert, which is used to invert a map of key-values. we cannot use this function unless we explicitly tell our program to include this namespace.
let’s look at the different methods available for namespaces.
| sr.no. | methods & description |
|---|---|
| 1 |
*ns*
this is used to look at your current namespace. |
| 2 |
ns
this is used to create a new namespace and associate it with the running program. |
| 3 |
alias
add an alias in the current namespace to another namespace. arguments are two symbols: the alias to be used and the symbolic name of the target namespace. |
| 4 |
all-ns
returns a list of all namespaces. |
| 5 |
find-ns
finds and returns a particular namespace. |
| 6 |
ns-name
returns the name of a particular namespace. |
| 7 |
ns-aliases
returns the aliases, which are associated with any namespaces. |
| 8 |
ns-map
returns a map of all the mappings for the namespace. |
| 9 |
un-alias
returns a map containing only those entries in map whose key is in keys. |