Haskell
A primeira versão da linguagem Haskell, cujo nome é uma homenagem ao matemático e lógico Haskell B. Curry, apareceu em 1987 do esforço para se consolidar vários avanços propostos no paradigma funcional. A linguagem ficou famosa pura, de propósito geral e por ter características marcantes como avaliação preguiçosa, e tipagem estática, forte e por inferência, como discutiremos mais adiante.
Mais do que uma linguagem, Haskell era uma especificação, ou série de especificações, tendo tido várias implementações distintas. A versão de 98 foi um marco da linguagem, sendo uma versão considerada estável. Nesta época surgiu o Glasgow Haskell Compiler (GHC), que se tornou o compilador Haskell "padrão". A versão seguinte da linguagem começou a ser especificada em 2006 e anunciada em 2009, a Haskell 2010. Dentre os principais avanços desta versão está a possibilidade de interagir com código escrito em outras linguagens, via a foreign function interface (FFI).
Mas chega de história e vamos colocar a mão na massa vendo alguns exemplos linguagem.
Exemplos simples
Para pequenos experimentos e exercícios, podemos usar o Repl.It1 para ter acesso a um interpretador Haskell sem a necessidade de instalação.
Do lado direito do sítio, na área marcada em vermelho, digite ghci
seguido de Enter.
Agora digite as expressões a seguir.
1 + 1
True && True
100 / 10
(10 + 4) * 50
3 * (-2)
2 * -1
Estas expressões fazem uso de operadores comuns e se comportam exatamente como você esperaria, depois de ter aprendido a programar em qualquer linguagem, em qualquer paradigma. Operadores são açúcar sintático para funções, a alma da programação funcional.
Exemplos um pouco menos complexos
Para exemplos um pouco mais interessantes, usamos o lado esquerdo do sítio.
Você pode começar substituindo a linha que aparece por padrão por soma2n a b = a + b
(em vermelho).
Do lado direito então digite o comando :load main
(ou simplesmente :l main
) (em verde), que irá carregar o arquivo sendo editado à esquerda, main.hs.
Uma vez carregado o arquivo, você pode usar suas novas funções (em amarelo).
Exemplos menos simples ainda
Para desenvolver e usar código um pouco mais complexo, você deverá instalar o compilador Haskell na sua máquina, seguindo as instruções específicas. 2 Neste caso, também recomendo o uso de uma IDE.
-
REPL é o acrônimo para Read, Evaluate, Print, Loop. ↩
-
Instruções de como instalar o GHC são específicas para cada sistema operacional. Por isso, consulte o sítio https://www.haskell.org/platform/ para instalar o Haskell na sua máquina. Frequentemente a solução é usar o ghcup. ↩