Usando funções existentes no Clojure

Gilmar Soares
Jul 22, 2017 · 2 min read

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

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!

Training Center

Conectamos pessoas que querem aprender algo relacionado a desenvolvimento de software com gente que pode guiá-las.

)

Gilmar Soares

Written by

Training Center

Conectamos pessoas que querem aprender algo relacionado a desenvolvimento de software com gente que pode guiá-las.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade