mlphaskell
698 palavras
3 páginas
HASKELLRafael 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