mlphaskell

698 palavras 3 páginas
HASKELL

Rafael Pinto
Frederico Corrêa

Origem
Haskell é uma linguagem puramente funcional, de propósito geral cujo nome vem do lógico Haskell
Brooks Curry, criador de um trabalho em lógica que serviu de base para as linguagens funcionais.
Foi criada em 1988 por um comitê de 15 membros para satisfazer, entre outros, os seguintes objetivos:

Objetivos








Deve ser aceitável para ensino, pesquisa e aplicações, incluindo grandes sistemas.
Deve ser disponibilizada gratuitamente.
Deve ser baseada em idéias que satisfaçam um grande consenso (por isso o comitê).
Deve reduzir a diversidade desnecessária nas linguagens funcionais (visa ser um padrão).

Execução
Existem diversas implementações da linguagem
Haskell, incluindo


interpretadores (Hugs) e



compiladores (GHC , nhc98).

Portalibidade
Além de possuir diversas implementações, cada uma delas está disponível para diversos sistemas operacionais, podendo gerar executáveis para várias plataformas. Outra alternativa está no interpretador
Hugs.
Deve-se, porém, observar o uso de bibliotecas específicas para determinados sistemas operacionais
(como a biblioteca Windows).

Tipos de Dados
Tipos primitivos:


Integer (tamanho arbitrário)



Int



Float



Double



Bool



Char

Tipos de Dados
Tipos estruturados:


Tuplas (structs)

Ex.: circulo1 = (azul,15)


Listas (arrays)

Ex.: pares [0,2,4,6..]

Sinônimos
É possível definir sinônimos de tipos.
Exemplo:
type String = [Char] type Person = (Name, Address) type Name = String

Tipagem
Haskell apresenta tipagem dinâmica, as variáveis não precisam ser explicitamente declaradas e seu tipo pode ser inferido a partir do contexto.
Ex.: print x
Haskell sabe que x deve ser um array de caracteres.
Caso contrário, um erro de overloading é retornado
(pois não há sobrecarga para o tipo utilizado).

Tipos Customizados
É possível criar novos tipos com declarações 'data'.
Exemplos:
data Bool = True | False data Color = Red | Green | Blue | Indigo | Violet
data

Relacionados