Clojure Tutorial on Clojure Namespaces

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.