E aí galera, olha eu aqui de novo.
Hoje vou falar mais um pouco de Haskell. Caso você não saiba do que estou falando, dê uma olhadinha no meu primeiro post .
As funções que desenvolvemos no Haskell têm um tipo de dado de retorno e de entrada, podendo ser:
Tipo | Descrição | Exemplo |
Bool | Booleano | True/False |
Int | Inteiro com Domínio Limitado | 1900 |
Integer | Inteiro com Domínio Ilimitado | 01123581321345589144233 |
Float | Real | 3.14159265359 |
Char | Caractere | 'h' |
String | Cadeira de Caracteres | 'Haskell' |
Void | Vazio | '_' (underscore. Mais pra frente, entrarei em detalhes) |
O Haskell, como padrão, em seu compilador ou interpretador, tem um sistema de dedução automática de tipos em todas as funções que não tiveram seus tipos definidos. Ou seja, você não é 'obrigado' a definir os tipos de dados que serão utilizadas em suas funções. E sim, o Haskell possui uma disciplina rigorosa de tipos de dados, diz-se fortemente tipada. Com isso, sabemos que todas as variáveis, funções e constantes têm somente um tipo de dado e sempre podemos determinar o seu tipo. Certo?
Bom, caso você queira determinar os tipos de dados que serão aceitos por sua função, é bem simples, vamos ao exemplo teórico:
Definição do tipo de dados que serão aceitos pela função nome_funcao:
nome_funcao :: Tipo_Arg_1 -> Tipo_Arg_2 -> Tipo_Saida
Então, '
nome_funcao
' é o nome da função, '::
' operador de instância de tipos, 'Tipo_Arg_X
' (Tipo_Arg_1
, Tipo_Arg_2
) é tipo de dado de entrada e por fim 'Tipo_Saida
' é tipo de dado que será retornado por sua função.No exemplo prático, talvez fique mais simples:
soma :: Int -> Int -> Int soma x y = x + y
Ou seja, nossa função '
soma
' receberá dois argumentos do tipo Int, 'x' e 'y', e terá como retorno um tipo 'Int
'.Nota: Lembre-se um pouco da Matemática, onde ƒ(x, y) = x + y.
Crie um novo arquivo com o nome de 'soma.hs' e digite o código acima dentro desse arquivo, não se esqueça de usar um editor de texto que tenha como padrão ASCII.
Teste no seu terminal:
hugs soma.hs
Deve aparecer a famosa apresentação do Hugs, digite:
Main> soma 3 4 7
Se sentir alguma dificuldade, baixe o arquivo do meu repositório GitHub: github.com/aterribili/Haskell/blob/master/soma.hs
Mais fácil impossível rs, talvez minha didática ainda não esteja tão boa quanto desejo, mas vou melhorando :)
E, para finalizar, as dicas de hoje são:
Interpretador Haskell Online TryHaskell (Gratuito)
http://tryhaskell.org/
Existe no GitHub, um repositório chamado /free-programming-books, onde nada menos que 16.000 pessoas estão colocando seus tutoriais de programação para compartilhar seus conhecimentos.
https://github.com/vhf/free-programming-books
E lá, tem algo muito bacana sobre Haskell:
https://github.com/taylorrf/learnhaskell
http://haskell.tailorfontela.com.br/
A galera ainda está traduzindo, mas já tem um bom material para começar. Vou dar um fork e tentar a ajudar a traduzir. Até mais galera! Qualquer dúvida, por favor, pergunte abaixo ou me enviem um email: abner.terribili@gmail.com. Vou criar um repositório GitHub e compartilhando os exercícios lá.
Atualizando: Repositório criado, para acompanhar os exercícios: github.com/aterribili/Haskell
Parabéns. Muito legais seus posts sobre Haskell. Continue colaborando com a comunidade. Abraços
ResponderExcluir