Usando funções existentes no Clojure

Gilmar Soares
Training Center
2 min readJul 22, 2017

--

Bom, aqui estou eu tentando manter uma meta pessoal e tentando ajudar quem esta iniciando nesse mundo Clojure.
Até aqui, fizemos o teste mais famoso do MUNDO chamado Hello World. Depois vimos como criar funções em Clojure, no final do artigo vou deixar o link dos dois posts para quem não viu ainda poder seguir desde o inicio.

Vamos as funções existentes em Clojure que podemos usar no nosso dia-dia. Nesse exemplo vou mostrar map, reduce, filter e inc.

Map, filter, reduce e inc em Clojure

  • map utilizando essa função você consegue por exemplo varrer uma lista e fazer alguma ação com cada item da lista;
  • reduce com essa função você consegue fazer por exemplo a soma de todos os elementos de uma lista;
  • filter essa função consegue varrer uma lista e encontrar itens de acordo a um determinado filtro.
  • inc incrementa cada em itens, iremos ver exemplo dessa função junto com map.

Bom, acho que podemos iniciar nossos exemplos.

user=> (map inc [1 2 3 4 5 6])
(2 3 4 5 6 7)
user=>

No exemplo acima usando map podemos ver que cada item da lista é incrementado (+1) a lista que tinha [1 2 3 4 5 6] passou a ter [2 3 4 5 6 7].

Agora vou mostrar como funciona a função reduce. Vamos utilizar a mesma lista [1 2 3 4 5 6] e tentar fazer a soma de todos os elementos.

user=> (reduce + [1 2 3 4 5 6])
21
user=>

Agora vamos usar o filter, vou filtrar numeros pares da lista [1 2 3 4 5 6 7 8 9 10]:

user=> (filter even? [1 2 3 4 5 6 7 8 9 10])
(2 4 6 8 10)
user=>

Para concluir esse artigo, vou mostrar como utilizar algumas dessas funções em uma função que criamos.

user=> (defn pares [& args]
#_=> (filter even? args))
#’user/pares
user=>

user=> (pares 1 2 3 4 5 6 7 8 9 10)
(2 4 6 8 10)
user=>

Como já tinhamos visto no artigo anterior, definimos a função pares e dentro dela utilizamos a função existente no clojure filter.

Bom, acredito que por enquanto é isso, no próximo artigo irei mostrar um como criar um simples projeto web em clojure e vou evoluindo esse projeto aos poucos.

  • Hello World;
  • Criar nossas próprias funções;
  • Utilizando função existentes do Clojure;
  • Criar projeto Clojure;
  • Ver como criamos funções e como podemos reutilizar em nosso projetos;
  • Criar projeto web;
  • Utilizar Classes Java em funções Clojure;
  • e mais…

Exemplo no repositório github.

Abraços!

--

--