TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Haskel - Cola de Prova

Por:   •  29/11/2019  •  Ensaio  •  2.065 Palavras (9 Páginas)  •  155 Visualizações

Página 1 de 9

/exe1 :: [ Int ]

exe1 = [ x^11 | x <- [1..7] ]

exe2 :: [ Int ]

exe2 = [ x | x <- [1..40], mod x 4 /= 0]

exe3 :: [ String ]

exe3 = [ 'A' : x : "BB" | x <- ['a'..'g'] ]

exe4 :: [ Int ]

exe4 = [ x | x <- [5,8..41], not (elem x [14, 23,

35]) ]

exe5 :: [ Double ]

exe5 = [ x/2 | x <- [2, 1, 0.5, 0.25, 0.125, 0.0625,

0.03125] ]

exe6 :: [ Int ]

exe6 = [ x | x <- [1,10..64] ]

exe7 :: [ Int ]

exe7 = [ x | x <- [2,4..30], not (elem x [6, 14, 20,

26]) ]

exe8 :: [ Char ]

exe8 = [ x | x <- ['@'..'L'], not (elem x ['B', 'F', 'H',

'I', 'K' ]) ]

exe9 :: String -> Bool

exe9 x = even . length $ x

exe10 :: [ String ] -> [ String ]

exe10 x = map (reverse) x

exe11 :: [ String ] -> [ Int ]

exe11 x = [ xn | xn <- map (length) x, mod xn 2 /=

0 ]

exe12 :: String -> Bool

exe12 x = x == reverse x

exe13 :: Int -> (Int, Int, Int, Int)

exe13 x = (x * 2, x * 3, x * 4, x * 5)

data Pergunta = Sim | Nao deriving (Show, Eq)

pergNum :: Pergunta -> Int

pergNum Sim = 1

pergNum Nao = 0

listPergs :: [ Pergunta ] -> [ Int ]

listPergs x = map (pergNum) x

and' :: Pergunta -> Pergunta -> Pergunta

and' Sim Sim = Sim

and' _ _ = Nao

or' :: Pergunta -> Pergunta -> Pergunta

or' Nao Nao = Nao

or' _ _ = Sim

not' :: Pergunta -> Pergunta

not' Nao = Sim

not' Sim = Nao

data Temperatura = Celsius | Farenheit | Kelvin

deriving Show

converterCelsius :: Double -> Temperatura ->

Double

converterCelsius x Celsius = x

converterCelsius x Farenheit = ( x - 32.0 ) / 1.8

converterCelsius x Kelvin = x - 273.15

converterFarenheit :: Double -> Temperatura ->

Double

converterFarenheit x Farenheit = x

converterFarenheit x Celsius = ( x * 1.8 ) + 32.0

converterFarenheit x Kelvin = ( x * 1.8 ) - 459.67

converterKelvin :: Double -> Temperatura ->

Double

converterKelvin x Kelvin = x

converterKelvin x Celsius = x + 273.15

converterKelvin x Farenheit = ( x - 459.67 ) / 1.8

data Jokenpo = Pedra | Papel | Tesoura deriving

Show

match :: Jokenpo -> Jokenpo -> Jokenpo

match Pedra Papel = Papel

match Papel Pedra = Papel

match Tesoura Papel = Tesoura

match Papel Tesoura = Tesoura

match Pedra Tesoura = Pedra

match Tesoura Pedra = Pedra

data Imperiais = Inch | Yard | Foot deriving Show

converterMetros :: Double -> Imperiais -> Double

converterMetros x Inch = x * 0.0254

converterMetros x Yard = x * 0.9144

converterMetros x Foot = x * 0.3048

converterImperial :: Double -> Imperiais ->

Double

converterImperial x Inch = x / 0.0254

converterImperial x Yard = x / 0.9144

converterImperial x Foot = x / 0.3048

data Mes = Janeiro | Fevereiro | Março | Abril |

Maio | Junho | Julho | Agosto | Setembro |

Outubro | Novembro | Dezembro deriving(Show,

Ord, Enum, Eq)

checaFim :: Mes -> Int

checaFim Fevereiro = 28

checaFim Abril = 30

checaFim Junho = 30

checaFim Setembro = 30

checaFim Novembro = 30

checaFim _ = 31

prox :: Mes -> Mes

prox x = toEnum . succ . fromEnum $ x

data Hemisferio = Norte | Sul deriving Show

data Estacoes = Outono | Inverno | Primavera |

Verao deriving Show

estacao :: Hemisferio -> Mes -> Estacoes

estacao Sul Setembro = Primavera

estacao Sul Outubro = Primavera

estacao Sul Novembro = Primavera

estacao Sul Dezembro = Verao

estacao Sul Janeiro = Verao

estacao Sul Fevereiro = Verao

estacao Sul Março = Outono

estacao Sul Abril = Outono

estacao Sul Maio = Outono

estacao Sul Junho = Inverno

estacao Sul Julho = Inverno

estacao Sul Agosto = Inverno

estacao Norte Setembro = Outono

estacao Norte Outubro = Outono

estacao Norte Novembro = Outono

estacao Norte Dezembro = Inverno

estacao Norte Janeiro = Inverno

estacao Norte Fevereiro = Inverno

estacao Norte Março = Primavera

estacao Norte Abril = Primavera

estacao Norte Maio = Primavera

estacao Norte Junho = Verao

estacao Norte Julho = Verao

estacao Norte Agosto = Verao

exe37 :: String -> Bool

exe37 x = x == reverse x

exe38 :: [ Int ] -> [ Int ]

exe38 x = reverse $ [ x | x <- x, mod x 2 /= 0,

mod x 7 /= 0, x >= 0]

exe39 :: String -> String -> String -> (String,

String, String)

exe39 x y z = (reverse x, reverse y, reverse z)

revNum :: String -> Int -> String

revNum s n = reverse(take n s) ++ drop n s

data Binario = Zero | Um deriving Show

data Funcao = Soma2 | Maior | Menor | Mult2

deriving Show

aplicar :: Funcao -> Binario -> Binario -> Binario

aplicar Soma2 Um Um = Zero

aplicar Soma2 Zero Zero = Um

aplicar Soma2 _ _ = Um

aplicar Mult2 Um Um = Um

aplicar Mult2 Zero Zero = Zero

aplicar Mult2 _ _ = Zero

aplicar Maior Zero Zero = Zero

aplicar Maior _ _ = Um

aplicar Menor Um Um = Um

aplicar Menor _ _ = Zero

listBinario :: Binario -> Int

listBinario Zero = 0

listBinario Um = 1

binList :: [ Binario ] -> [ Int ]

binList x = [ listBinario (aplicar Soma2 Um xn) |

xn <- x ]

data Metros = Metros { dimensao :: Int , medida

:: Double} | MetragemInvalida deriving Show

areaQuadrado :: Metros -> Metros

areaQuadrado (Metros 1 l) = Metros 2 (2*l)

...

Baixar como (para membros premium)  txt (12.4 Kb)   pdf (74.3 Kb)   docx (917.6 Kb)  
Continuar por mais 8 páginas »
Disponível apenas no TrabalhosGratuitos.com