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