Jump to content

Search the Community

Showing results for tags 'haskell'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Comunidade
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Apresentação de Projectos de Programação
    • Downloads
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Pascal
    • Python
    • Bases de Dados
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • Apresentação de Software
  • Informática
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica e Automação Industrial
    • Matemática
    • Software de Contabilidade e Finanças
    • Dúvidas e Discussão de Programação
  • Outras Áreas
    • Notícias de Tecnologia
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
    • Tutoriais
    • Snippets / Armazém de Código
  • Arquivo Morto
    • Projectos Descontinuados
    • System Empires

Blogs

  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Revista PROGRAMAR
  • Projectos
  • Wiki

Categories

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

  1. Alessandro Bueno Ribeiro

    2 Exercícios em Haskell

    Alguém poderia me ajudar a resolver esses dois exercícios em haskell? Crie uma função recursiva charFound :: Char -> String -> Bool, que verifique se o caracter (primeiro argumento) está contido na string (segundo argumento). Exemplos de uso da função: > charFound 'a' "" False > charFound 'a' "uau" True Dada uma lista de strings, produzir outra lista com strings de 10 caracteres, usando o seguinte esquema: strings de entrada com mais de 10 caracteres são truncadas, strings com até 10 caracteres são completadas com '.' até ficarem com 10 caracteres. Exemplo: > func ["palavra
  2. Olá tenho uma grande dificuldade em saber aplicar as funções foldr e foldl, Como exemplo tenho por exemplo a função elem, que teria que fazer usando foldr. Mas quais as análises a se fazer ? elemento :: Eq a => a->[a]->Bool elemento _ [] = False elemento x (y:ys) | x == y = True |otherwise = elemento x ys http://www.crislaniomacedo.zz.vc/categoria/tutoriais/haskell/
  3. crislanio_macedo

    IO Haskell Ajuda com a função forever

    Olá pessoal estou a fazer um programa que irá acumular um valor a medida que eu digito, como eu farei isto. Terei que converter duma string para um numero para depois somar ? me ajudem. import Control.Monad main = forever $ do putStrLn "Informe um numero para ir somando, ou digite 0 para sair" numero <- readLn when (numero /= 0) $ do -- here putStrLn $ "Soma " ++ (show numero ) main No caso como faria diferente disto. OU seja sem tantas funções leInt :: IO (Int) leInt = do putStr "Digite um valor inteiro: " readLn -- Ler um número e imprimir a lista de 0 a n lista::IO () li
  4. crislanio_macedo

    IO haskell ajuda

    Fatorial com IO: Olá a todos, o código abaixo dá o seguinte erro. Como eu faria esse programa, usando ao invês de print (fat ( read numero)) algo como import Control.Monad fat a | a==0 =0 | a==1 =1 | otherwise = a*fat(a-1) main = do putStrLn "Informe um para saber o saber o seu fatorial, ou escreva sair para sair" numero <- getLine putStrLn ("O Fatorial de " ++ numero ++ " é " ++ fat ( read numero)) -- print (fat ( read numero)) Pois assim dá o seguinte erro: 3$ ghc --make ioTESTE.hs [1 of 1] Compiling Main ( ioTESTE.hs, ioTESTE.o ) ioTESTE.hs:38:51: No inst
  5. crislanio_macedo

    Erro ao tentar inserir numa árvore

    data Arv a = No a (Arv a) (Arv a) | Vazia deriving Show -- *Main> foldr inserirAVL Vazia [3,1,2] -- No 2 (No 1 Vazia Vazia) (No 3 Vazia Vazia) -- *Main> foldr inserirAVL Vazia [4,3,2,1] -- No 3 (No 2 (No 1 Vazia Vazia) Vazia) (No 4 Vazia Vazia) -- inserir :: Ord a => a -> Arv a -> Arv a inserir x Vazia = No x Vazia Vazia inserir x (No e esq dir) | x==e = No e esq dir | x<e = No e (inserir x No esq) dir | x>e = No e esq (inserir x No dir) Prelude> :l arvore.hs [1 of 1] Compiling Main ( arvore.hs, interpreted ) arvore.hs:27:25: Couldn't match expected type
  6. crislanio_macedo

    insertSort usando foldr.

    inserir :: Ord a => [a] -> a -> [a] inserir [] a = [] inserir (x:xs) a | x < a = x: inserir xs a |otherwise = a: x:xs insertSort' = foldr1 inserir []
  7. crislanio_macedo

    Uniao de 2 listas sem repetição

    Olá queria fazer uma função que dada duas listas, devolva uma lista com a união das listas dadas, sem repetição de elementos. uniao [] [] =[] uniao [] (x:xs) =(x:xs) uniao (x:xs) [] =(x:xs) uniao (x:xs)(y:ys) | x<y = x:uniao xs (y:ys) | x==y = x: uniao xs ys | otherwise = y: uniao (x:xs) y Erro. Prelude> :l Exercicios-2Entrega.hs [1 of 1] Compiling Main ( Exercicios-2Entrega.hs, interpreted ) Exercicios-2Entrega.hs:114:39: Occurs check: cannot construct the infinite type: a0 = [a0] In the second argument of `uniao', namely `y' In the second argument of `('
  8. crislanio_macedo

    Função elem com any

    Pessoal a função abaixo está dando erros, a ideia é simples porém não está sendo usado os argumentos de forma correta. verify a b =if a==b then True else False elem' e [] = False elem' e a@(x:xs) = if any (verify e x) a then True else any (verify e (head a) )(elem' e xs) -- elem' e [] = False elem' e a@(x:xs) = if any (e==x) a then True else any (e==head a ) (elem' e xs)
  9. Olá pessoal, aconteceu um caso que chega até engraçado, vejamos as funções abaixo. concatena3 = foldl (\a b@(y:ys)->a++b) [] -- por que aceita e dá erro no final concatena2 = foldl (\x xs->x++xs ) [] concatena4 = foldl1 (\a@(x:xs) b@(y:ys)->a++b) -- aceita e não erro no final Agora queria que os srs, me dessem uma explicação do por que o erro na função concatena3 ao querer usar \a@(x:xs) *Main> concatena2 [[1,2] ,[2,3]] [1,2,2,3] *Main> concatena4 [[1,2] ,[2,3]] [1,2,2,3] *Main> concatena3 [[1,2] ,[2,3]] [1,2,2,3] --------------------------------- *Main> concat
  10. crislanio_macedo

    [f x | x <-xs, p x] with map e filter.

    Como a lista em compreensão [f x | x <-xs, p x] pode ser feita como combinação das funcões de ordem superior map e filter. ?
  11. crislanio_macedo

    Algoritmo de Seleção em Haskell

    minimo :: Ord a => [a] -> a minimo [x] = x minimo (x:xs) = if (filter (<x) xs)== [] then x else minimo xs remove' a [] = [] remove' a [x] = if a == x then [] else [x] remove' a (x:xs) = [] ++ if (x == a) then xs else x:(remove' a xs) -- selectionSort :: Ord a => [a] -> [a] -- selectionSort :: Ord a => [a] -> [a] selectionSort [] = [] selectionSort a@(x:xs) = head.minimo a $ selectionSort xs Como proceder no caso acima, já que a ideia no selectionSort era pegar a cabeça da lista (elemento mínimo), e chamar o resto do da lista sem o elemento mínimo.
  12. crislanio_macedo

    Função Replicate erro

    Pessoal estou a ter um erro ao tentar fazer a função replicate, alguém poderia me ajudar. dMod x = (x `mod` 10) dDiv x =(x `div` 10) inteiroPraLista :: Int -> [int] inteiroPraLista x | x<10 = [x] -- error "Entrada invalida" |otherwise= if (dDiv x) >10 then (dMod x):inteiroPraLista (dDiv(x)) else dMod(x):[dDiv (x) ] listaPraInteiro:: [int]->Int listaPraInteiro [] = 0 listaPraInteiro (x:xs) = 10 * listaPraInteiro (xs) + x rev x = listaPraInteiro (inteiroPraLista x) replica c 0 = [] replica c a | c<0 =error "Numero Negativo!" | otherwise = replica (c-1) rev a Erro. Prelu
  13. Olá pessoal queria que dada uma lista e um elemento, retornar todos os índices do elemento em uma lista. para isso tenho algumas funções em partes: TakeUmElemento (t:ts) id | id==0 =t |otherwise =takeUmElemento ts (id-1) -- ------------------------------------------------------------------------- --dMod x = (x `mod` 10) dDiv x =(x `div` 10) inteiroPraLista :: Int -> [int]-- inteiroPraLista x | x<10 = [x] -- error "Entrada invalida" |otherwise= if (dDiv x) >10 then (dMod x):inteiroPraLista (dDiv(x)) else dMod(x):[dDiv (x) ] -- ------------------------------------------------------
  14. frequencia :: Eq t => t -> [t] -> [t] frequencia x xs = [y | y<-xs, x==y] Tenho a função unico, que quanto faço :t unico no ghci ele retorna unico :: (Eq t, Num [t]) => t -> [t] -> Bool porém caso coloque esse tipo na função ele dá o seguinte erro. -- unico :: (Eq t, Num [t]) => t -> [t] -> Bool unico x a | frequencia x a == 1 = True |otherwise = False Lista2.hs:15:10: Non type-variable argument in the constraint: Num [t] (Use -XFlexibleContexts to permit this) In the type signature for `unico': unico :: (Eq t, Num [t]) => t -> [t] -> Bool
  15. crislanio_macedo

    Erro ao fazer função Filter'

    Olá pessoal, estou a tentar fazer a função filter do haskell, tive o seguinte erro. filter' f [] = [] filter' f (x:xs) | filter' f x ==True =x :filter f xs | otherwise = filter f xs Erro *Main> :l Lista1.hs [1 of 1] Compiling Main ( Lista1.hs, interpreted ) Lista1.hs:107:25: Couldn't match expected type `[a0]' with actual type `Bool' In the second argument of `(==)', namely `True' In the exp<b></b>ression: filter' f x == True In a stmt of a pattern guard for an equation for filter': filter' f x == True Failed, modules loaded: none.
  16. Olá a todos, queria saber o erro que procede no código que estou a trabalhar, vejamos: count' f [] = [] count' f l@(x:xs) = length (filter f l) contudo está dando o seguinte erro: Prelude> :l Lista1.hs [1 of 1] Compiling Main ( Lista1.hs, interpreted ) Lista1.hs:98:21: Couldn't match expected type `[a0]' with actual type `Int' In the return type of a call of `length' In the exp<b></b>ression: length (filter f l) In an equation for count': count' f l@(x : xs) = length (filter f l) Failed, modules loaded: none. Como proceder ?
  17. Olá alguém poderia sugerir algum meio de se começar a aprender interface gráfica com haskell, ouvi falar do gloss, mas achei muito difícil estou a ter muita dificuldade em começar a aprender alguma coisa, tem alguma outra que poderia ser de mais fácil compreensão ou que inicialmente poderia aprender coisas básicas de forma mais 'natural' por assim dizer. Grato.
  18. Olá pessoal tenho uma função --divisoresComum :: Int -> Int -> [int] divisoresComum a b = [ x | x <- [1..a], mod a x == 0, mod b x == 0] e tenho que criar uma função MDC ultilizando divisoresComum. poderia-mos fazer algo como mdc a b = maximum(divisoresComum(a b)) retornando o maior da lista gerada por divisoresComum mas dá erro, como proceder neste caso? Grato.
  19. zmar

    Matriz triangular superior

    Boa tarde alguém me pode ajudar a resolver este exercício ? type Mat a = [[a]] Defina a função triSup :: Mat a -> Bool que testa se uma matriz quadrada ́e triangular superior Não estou a ver como é que resolvo isto
  20. ex-dead

    Unir duas listas de tuplos

    Boas. Tenho uma função union que ao receber [('a',1),('b',1),('c',3)] [('d',1),('b',2)] devolve [('a',1),('b',3),('c',3),('d',1)] O que fiz foi: type ASd a=[(a,Int)] union::Eq a=>ASd a->ASd a->ASd a union _ []=[] union ((e1,b1):t1) t2=compar (e1,b1) t2:union t1 t2 compar::Eq a=>(a,Int)->ASd a->ASd a compar _ []=[] compar (x,y) ((e2,b2):t)=if (x==e2) then (e2,b2+y):compar (x,y) t else compar (x,y) t Mas isto devolve o erro: Couldn't match expected type `(a, Int)' with actual type `[(a0, Int)]' Expected typ
  21. ricant

    Ajuda num erro

    Boas. Estive resolver um exercicior que pede definir uma função que gera uma chave de euromilhoes de forma aleatória. Eu fiz da segunte maneira: module Estudo where data Aposta = Ap [int] (Int,Int) geraChave :: IO Aposta geraChave = do ns <- geraNums 5 [] es <- geraEstrelas return (Ap ns es) geraNums :: Int -> [int] -> IO [int] geraNums n l | n == 0 = return l | n > 0 = do x <- randomRIO (1,50) if (elem x l) then geraNums n l else geraNums (n-1) (x:l) geraEstrelas :: IO (Int,Int) geraEstrelas = do a <- randomRIO (1,9) b <- random
  22. ex-dead

    Rodar rectangulo 90º

    Boas. Estou com uma dúvida num ex. Os rectângulos têm os lados paralelos aos eixos e são representados por dois pontos que façam diagonal. type Ponto = (Float,Float) type rectangulo = (Ponto,Ponto) roda::rectangulo->rectangulo O objetivo é rodar o rectangulo em 90º centrado no 1º ponto. Por exemplo, dado o rectângulo ((2,2),(6,4)) a função tem de devolver ((2,2),(4,-2)). Se executado outra vez passa a devolver ((2,2),(-2,0)). Alguém me pode ajudar? Obrigado.
  23. xintect

    Ajuda em Recursividade!

    Boa Noite, preciso de ajuda no seguinte caso com alguma urgência : Tenho uma Função que devolve uma string por exemplo : "1 1 N" função :: [string]->(Int,Int)->(Int.Int)->String->Char->String função str (x,y) (x1,y1) str1 char = "1 1 N" por exemplo, e quero fazer agora uma função que me ponhja uma recursividade e separe dados antes de fazer os proximos elementos ex : função2 :: [string]->(Int,Int)->(Int.Int)->String->String->[string] função2 str (x,y) (x1,y1) str1 str3 = result where result = função str (x,y) (x1,y1) str1 (head str3) : função str (x,y
  24. Boas, preciso de ajuda a identificar um erro, este código foi escrito sem tabs, apenas com espaços module Main where import Data.Char import Data.List outStr :: [string]->String outStr [] = "\n" outStr t = unlines t main = do inp<-getContents putStr (outStr (tarefa (lines inp))) tarefa :: [string]->[string] tarefa [] = ["1"] tarefa l = [msg] no GHCI dame o seguinte erro : teste.hs:13:29: parse error on input `=' Failed, modules loaded: none. o erro está se a referir a esta linha : tarefa [] = ["1"] agradeço a ajuda!
  25. Precisava de uma ajuda na compreensão a partir do main, outStr :: [string] -> String outStr [] = "\n" outStr t = unlines t main = do inp <- getContents putStr (outStr (tarefa (lines inp))) como funciona ao certo o "do" em haskell?
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.