Paradigmas de Linguagem Funcional
1. Introdução
Existem diversos paradigmas de programação e diversas linguagens associadas a estes paradigmas, e este trabalho irá enfatizar o paradigma de programação funcional e a linguagem a ser abordada será o Haskell.
2. Paradigma Funcional.
O Paradigma funcional consiste em desenvolver funções que solucionam um determinado problema. Tais funções obedecem aos princípios matemáticos, embora nem sempre podem ser consideradas funções totais.
Uma função é dita total quando todo elemento de um conjunto A tem um representante em um conjunto B. Normalmente, todos os cálculos matemáticos levam em contam funções totais por serem de menor complexidade que as funções parciais.
Ao contrário do Paradigma Imperativo que trata estados e eventos provocados em um sistema, o Paradigma Funcional trabalha de forma avaliativa, assim como as calculadoras, lê uma expressão, calcula o seu valor e apresenta o resultado. A característica predominante da programação funcional é que o significado de um expressão é o seu valor, e o papel do computador é obtê-lo. Nas linguagens funcionais as funções são entidades de 1ª Classe, e podem ser usadas como parâmetros, retornadas como resultado e até mesmo armazenadas em estruturas. As linguagens funcionais são naturalmente recursivas e implementam de forma mais rápida o conceito de recursão. Este fato dependendo do contexto podem torná-las mais eficientes que as linguagens imperativas para alguns problemas.
3. Histórico da linguagem LISP.
Lisp é uma família de linguagens que possui uma longa história. As primeiras idéias-chave para a linguagem foram desenvolvidas por John McCarthy em 1956, durante um projeto de pesquisa em inteligência artificial. A primeira implementação da linguagem se dá no inverno de 1958.3 A motivação de McCarthy surgiu da idéia de desenvolver uma linguagem algébrica para processamento de listas para trabalho em IA (inteligência artificial).