Clojure - Namespaces

Namespacesem Clojure são usados ​​para diferenciar classes em espaços lógicos separados, assim como em Java. Considere a seguinte declaração.

(:require [clojure.set :as set])

Na declaração acima, 'clojure.set' é um namespace que contém várias classes e métodos a serem usados ​​no programa. Por exemplo, o namespace acima contém a função chamada map-invert, que é usada para inverter um mapa de valores-chave. Não podemos usar essa função a menos que instruamos explicitamente nosso programa a incluir esse namespace.

Vejamos os diferentes métodos disponíveis para namespaces.

Sr. Não. Métodos e Descrição
1 * ns *

Isso é usado para examinar seu namespace atual.

2 ns

Isso é usado para criar um novo namespace e associá-lo ao programa em execução.

3 apelido

Adicione um alias no namespace atual a outro namespace. Os argumentos são dois símbolos: o alias a ser usado e o nome simbólico do namespace de destino.

4 all-ns

Retorna uma lista de todos os namespaces.

5 find-ns

Encontra e retorna um namespace específico.

6 ns-nome

Retorna o nome de um determinado namespace.

7 ns-aliases

Retorna os aliases, que estão associados a quaisquer namespaces.

8 ns-map

Retorna um mapa de todos os mapeamentos para o namespace.

9 un-alias

Retorna um mapa contendo apenas as entradas no mapa cuja chave está nas chaves.