A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Haskell Centro de Informática – UFPE. Roteiro História Paradigma Utilização Sintaxe Implementação Exemplos Vantagens & Desvantagens.

Apresentações semelhantes


Apresentação em tema: "Haskell Centro de Informática – UFPE. Roteiro História Paradigma Utilização Sintaxe Implementação Exemplos Vantagens & Desvantagens."— Transcrição da apresentação:

1 Haskell Centro de Informática – UFPE

2 Roteiro História Paradigma Utilização Sintaxe Implementação Exemplos Vantagens & Desvantagens

3 História Desenvolvida em 1990 pelo FPAC Haskell Haskell 98 Report Haskell-prime

4 Paradigma Totalmente baseado em funções Não existem atribuições (assignments) ! Lazy Evaluation High-order Functions

5 Utilização Jogos Compiladores IA (Problemas algébricos e lógica proposicional)

6 Sintaxe Trabalha-se somente com funções, seus parâmetros e seus retornos É case-sensitive Não possui comandos de repetição como While e For Sem limites para identificadores

7 Sintaxe Tipos Básicos  Bool(Booleano)  Int(Inteiro limitado)  Integer(Inteiro ilimitado)  Float(Real)  Char(Caractere)

8 Sintaxe( Tipos Básicos )  Void  Tuplas  Listas  Funções

9 Sintaxe Módulos module Main where main = putStrLn “Hello, World!”

10 Sintaxe Funções multiplica x y = x*y

11 Sintaxe Listas ["Bob", "John"] "Bob" : "John" : []

12 Sintaxe :: (dois-pontos duplo) 5 :: Integer 'a‘ :: Char Inc :: Integer -> Integer [1,2,3] :: [Integer] ('b',4) :: (Char,Integer)

13 Sintaxe do main = do putStr "You are? " name <- getLine greet name Obs.: Utilização de layout (identação), substituindo os parênteses

14 Sintaxe Recursão (simulação de loops) printAll :: [String] -> IO () printAll [] = return () printAll (x:xs) = do putStrLn x printAll xs

15 Sintaxe Operador $ greet name = putStrLn $ greeting name

16 Sintaxe If then else greeting :: String -> String greeting name = if name = = "Haskell" then "Hey, whadda ya know? This is a Haskell program!" else "Hello, " ++ name ++ "!"

17 Sintaxe Outros  case  Sobrecarregamento (“Overloading”)  ect, etc...

18 Implementação Hugs GHC Nhc98 HBC Helium Jhc Yhc

19 Implementação Hugs  Interpretador  Escrito em C  Portável  Leve  Ideal para iniciantes

20 Implementação GHC  Interpretador e Compilador  Escrito em Haskell  Menos portável  Mais lento  Exige mais memória  Produz programas mais rápidos

21 Exemplos module Main where main :: IO () main = do putStr “Qual é o seu nome? " nome <- getLine cumprimento nome cumprimento :: String -> IO () cumprimento nome = putStrLn $ cumprimentar nome

22 Exemplos cumprimentar :: String -> String cumprimentar nome = if nome == "Haskell" then “Opa, eu te conheço? Este é um programa em Haskell!" else if nome == “Java" then “Boa linguagem" else “Olá, " ++ nome ++ "!"

23 Vantagens Fortemente Tipada e Estática Avaliação Lazy Polimorfismo Universal Paramétrico Função (superior e parcial) Ausência de variáveis globais e desvios incondicionais

24 Desvantagens Avaliação Lazy Muita memória Execução lenta

25 Dúvidas

26 Haskell Centro de Informática - UFPE


Carregar ppt "Haskell Centro de Informática – UFPE. Roteiro História Paradigma Utilização Sintaxe Implementação Exemplos Vantagens & Desvantagens."

Apresentações semelhantes


Anúncios Google