DEV Community

Eduardo Teixeira
Eduardo Teixeira

Posted on • Edited on

Clojure - Criando nossa primeira função

Anteriormente vimos como configurar o ambiente e em seguida escrevemos nossas primeiras linhas de código para começarmos a entender como o Clojure funciona, usamos algumas funções "nativas", declaramos algumas "variáveis" e também brincamos com um vetor.

Nesse post daremos mais um passo, escreveremos nossa primeira função, passando por algumas de suas características e entendendo um pouco sobre como a criação delas funciona.

Definindo nossa primeira função

Para criar nossa primeira função precisamos ter em mente que o que deve ser feito é algo semelhante a definição de uma variável, a diferença fica por conta do uso do comando "defn" (é possível usar o "def", mas veremos isso futuramente), basicamente precisaremos:

  • Escrever todo o conteúdo dentro de parênteses;
  • Usar o comando "defn";
  • Definir uma lista de parâmetros, se não existirem parâmetros (nosso caso agora) essa lista deve estar vazia;
  • Definir o corpo da função;
  • Opcionalmente podemos colocar um comentário para deixar mais claro o que a função faz;

Definindo nossa função:

(defn minha-primeira-funcao
  "Exemplo de uma função"
  []
  (println "Minha primeira função!")
)

Enter fullscreen mode Exit fullscreen mode

Executando nossa função:

(minha-primeira-funcao)
Enter fullscreen mode Exit fullscreen mode

Criando nossa primeira função!

Na imagem acima temos:

  • Na linha três temos o inicio da definição de nossa função com o uso de "defn" seguido do nome que escolhemos;
  • Na linha quatro, entre aspas duplas, temos o comentário que explica o que a função faz;
  • Na linha cinco temos o vetor de parâmetros vazio;
  • Na linha seis temos o corpo de nossa função, que realiza a impressão no console de uma frase;
  • Na linha sete temos o fechamento de nossa função;
  • Na linha nove executamos a nossa função;
  • Na linha dez temos o resultado da execução e na onze o retorno;

Apenas um detalhe, a função toda foi escrita no bloco de notas, e depois copiada para o console para a execução.

Criando uma função que recebe parâmetros e devolve um valor

De acordo com nosso exemplo anterior, para criarmos uma função que receba parâmetros basta declara-los no vetor que tem essa responsabilidade, agora para retornar um valor basta construirmos uma instrução que retorne um valor.

Para nosso segundo exemplo criaremos uma função que calculará e retornará a média de um aluno com base em duas notas:

(defn calcula-media
  "Calculando a media de duas notas"
  [nota1, nota2]
  (/ (+ nota1 nota2) 2)
)

Enter fullscreen mode Exit fullscreen mode

Executando nossa segunda função:

(calcula-media 7M 8M)
Enter fullscreen mode Exit fullscreen mode

Função que calcula a média de duas notas

Na imagem acima temos:

  • Da linha três a linha sete temos a definição de nossa função, destaque para a linha cinco onde temos a definição de dois parâmetros (nossas duas notas) e para a linha seis, onde de fato realizamos o cálculo e por consequência o retorno da média, analisando de "dentro" para "fora" temos a soma das notas e depois a divisão por dois;
  • Na linha nove temos a execução da função de média, onde informamos as duas notas, a "letra M" colocada junto do valor das notas é apenas para termos um resultado mais amigável, a frente entenderemos melhor a questão de tipos de dados;
  • E na linha dez temos o resultado apresentado, a média calculada;

Conclusão

Nesse post escrevemos nossas duas primeiras funções e entendemos como passar parâmetros e devolver um resultado.

Saiba mais

Top comments (0)