Friday, January 27, 2017

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.
S.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.

No comments:

Post a Comment