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!")
)
Executando nossa função:
(minha-primeira-funcao)
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)
)
Executando nossa segunda função:
(calcula-media 7M 8M)
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.
Top comments (0)