pesquisar

sábado, 1 de agosto de 2015

LP Haskell

Voltando nas linguagens. 15º Haskell !!!

Como eu já tinha tido e vou prometer, continuarei sobre ás linguagens de programação. Ficando em 15º no ranking de linguagens de programação o Haskell, agora abaixo vem uma síntese, não muto detalhada, mas apenas um resumo do que seria essa linguagem. 
Para começar á entender é preciso que você possua experiencia com alguma linguagem de programação imperativa (C, C++, Java, Python) sem ter programado em uma linguagem funcional (Haskell, Ml, OCaml...). Ao ler esse artigo e precisar tirar duvidas a´respeito sobre isso o canal #haskell ( ou #haskell-br) na rede freedone é um ótimo local para tirar suas duvidas.

Haskell é uma linguagem de programação puramente funcional. Em linguagens de programação imperativas você pensa nas coisas seguindo uma sequência computacional de tarefas sendo executadas, embora durante o processo possam mudar de estado.

Tem um trecho muito interessante sobre essa linguagem: "Na programação puramente funcional você não diz para o computador o que fazer, porém muitas vezes você diz em qual coisa está. O fatorial de um número é o produto de todos os números sobre 1 deste número, a soma de uma lista de números é o primeiro mais a soma de todos os outros números e assim por diante. Você expressa isto na forma de funções. Você também não pode definir uma variável como sendo alguma coisa e em seguida defini-lá como sendo alguma outra coisa mais tarde. Se você disser a uma função que algo é 5, você não poderá dizer depois que é alguma outra coisa porque você já disse que era 5. O que você é? Algum tipo de mentiroso? Então, em linguagens puramente funcionais, uma função não tem efeitos colaterais. A única coisa que podemos fazer com uma função é calcular algo e devolvê-lo como um resultado. Inicialmente, eu vi isto como uma limitação, porém isto realmente tem algumas consequências interessantes: se a função é chamada duas vezes com os mesmos parâmetros, isto garantirá o retorno de um mesmo resultado. Isso se chama transparência referencial e não só permite que o compilador raciocine sobre o comportamento do programa, como também permite que você deduza facilmente (e até mesmo prove) que uma função está correta e, em seguida, construa funções mais complexas juntando diversas funções simples por "colagem."

Agora você tem que entender que essa linguagem requer que você seja bem claro nas suas funções, senão não executará nada do seu programa.

Nenhum comentário:

Postar um comentário