Jump to content

Search the Community

Showing results for tags 'haskell'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Bem-vindos ao Portugal-a-Programar
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Wiki P@P
    • Apresentação de Projectos de Programação
    • Downloads
  • Revista PROGRAMAR
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Haskell
    • 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
    • Automação Industrial
    • Matemática
    • Dúvidas e Discussão de Programação
    • Notícias de Tecnologia
  • Outras Áreas
    • 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...

Found 548 results

  1. Moises

    Filtrando aplicando o fold

    Defina a função filtraAplicaFold :: (a->b) -> (a->Bool)->[a]-> tal que (filtraAplicaFold f p xs) é uma lista obtida aplicando a função f aos elementos de xs que satisfazem o predicado p usando a função foldr. Por exemplo, filtraAplicaFold (4+) (<3) [1..7] == [5,6] Codigo testado, mas que esta dando problema: filtraAplicaFold :: (a->b) -> (a->Bool)->[a]-> filtraAplicaFold [] [] = True filtraAplicaFold _ [] = False filtraAplicaFold [] _ = False filtraAplicaFold (f:fs) ((a,b):vals) = (f a b) && (filtraAplicaFold fs vals)
  2. Usando o foldr, defina a função descompactaFold :: [(a, b)] -> ([a], ) que transforma uma lista de pares ordenado em um par ordenado onde o primeiro elemento ´e uma lista dos primeiros componentes dos pares ordenados e o segundo elemento é uma lista dos segundos componentes dos pares ordenados. descompactaFold [ ( 1 , 2 ) , ( 3 , 4 ) , ( 5 , 6 ) , ( 4 , 5 ) ] == ( [ 1 , 3 , 5 , 4 ] , [ 2 , 4 , 6 , 5 ] ) descompactaFold [ ( 1 , 2 ) , ( 3 , 4 ) , ( 5 , 6 ) , ( 4 , 5 ) , ( 5 , 6 ) ] == ( [ 1 , 3 , 5 , 4 , 5 ] , [ 2 , 4 , 6 , 5 , 6 ] ) Código testado, porem não funciona: descompactaFold :: [(a, b)] -> ([a], ) descompactaFold f v [] = v descompactaFold f v (x:xs) = f x (descompactaFold f v xs)
  3. A função duplicarFold :: String -> String repete duas vezes cada vogal (letras 'a', 'e', 'i', 'o', 'u' minúsculas ou maiúsculas) numa cadeia de carateres; os outros carateres devem ficar inalterados. Por exemplo, duplicar "Ola, mundo!"== "OOlaa, muundoo!" Da forma que fiz não esta funcionando: duplicarFold :: String -> String duplicarFold xs = foldr (\x acc-> if elem x vogais then else ) [] xs where vogais = "aeiouAEIOU"
  4. Lele

    Tipo de funções e afins

    Qual é o TIpo da função abaixo? Sem a ullização do comando :t, mostre como você obteve esses tipos. Identifique as classes dos parâmetros polimórficos. Caso não seja possível determinar o tipo, explique o porquê. Apresente uma entrada e a saída associada de forma a não retornar uma função de alta ordem. map.((.) (foldr (++) (foldr (++) [] [[1], [2], [4,5,6], [3]])))
  5. Gustavo Martins

    Dúvidas em exercícios

    Olá a todos, sou meio iniciante em haskell e estou em dúvida nesse exercicio. 1) A função min no Haskell retorna o menor entre dois números, por exemplo, min 4 5 = 4 . Crie um tipo min com um campo inteiro, que seja instância de Ord, Eq e Show (deriving) .Crie uma instancia de Monoid para min (maxBound representa o maior inteiro existente no Haskell) .Quanto vale a expressão Min(-32) <> Min(-34) <> Min(-33)? . Explique sua escolha para o mempty Quem puder me ajudar ficarei agradecido.
  6. nuno35

    Funções com Tipos de dados

    Boa Tarde, preciso aqui de uma ajuda tenho estes dois tipos de dados e estou a tentar fazer estas 3 funções ate agr tenho este codigo se alguem me conseguir dar uma ajuda Data Cor = Vermelho | Azul | Cinzento deriving Show Data Carro = Carro cor (Maybe Carro) deriving Show Basicamente pode ir havendo um carro dentro do outro 1 - Recebe um tipo de dado carro e devolve uma lista com todas as cores Lista_Cores :: Carro -> [Cor] Lista_Cores Carro c (Nothing) = [c] Lista_Cores Carro c (Car) = [c] : Lista_Cores Car 2 - Recebe um cor um tipo de dado carro e devolve numero de carros com cor = cor Num_Cor :: Cor -> Carro -> Int Num_Cor cor Carro c (Nothing) = if cor == c then 1 else 0 Num_Cor cor Carro c (Car)= if cor == c then 1 + Num_Cor cor Car 3 - O tipo de dados Cor ser Eq gerada pelo par Vermelho == Azul nao percebo bem esta parte de ser gerada por este par Desde ja Obrigado
  7. InvertedCloud

    Listas em compreensão aninhadas

    Boas, Estou ultimamente a aprender programação funcional e deparei-me com um exercício que diz o seguinte (no que suponho seja terminologia académica): mostre que uma lista em compreensão com geradores duplos pode ser descrita usando geradores simples. Sugestão: use a função concat e uma compreensão dentro de outra. É dado o exemplo de [(x, y) | x <- [1, 2, 3], y <- [4, 5, 6] ] o meu problema aqui é, como raio é que se encaixa sintacticamente uma lista por compreensão aninhada dentro de outra? o exemplo descreve uma lista de tuplos (x, y) com aqueles geradores para cada variável. Concat recebe uma lista de listas. Perdi-me algures no meio, suponho. Não tenho qualquer exemplo de tal situação, estou a seguir o livro "Learn you a Haskell for great good" e paralelamente a frequentar uma cadeira de programação funcional com haskell que me fornece outro tipo de exercicios, admitidamente mais fáceis. Alguma ideia?
  8. InvertedCloud

    Listas em compreensão aninhadas

    Boas, Estou ultimamente a aprender programação funcional e deparei-me com um exercício que diz o seguinte (no que suponho seja terminologia académica): mostre que uma lista em compreensão com geradores duplos pode ser descrita usando geradores simples. Sugestão: use a função concat e uma compreensão dentro de outra. É dado o exemplo de [(x, y) | x <- [1, 2, 3], y <- [4, 5, 6] ] o meu problema aqui é, como raio é que se encaixa sintacticamente uma lista por compreensão aninhada dentro de outra? o exemplo descreve uma lista de tuplos (x, y) com aqueles geradores para cada variável. Concat recebe uma lista de listas. Perdi-me algures no meio, suponho. Não tenho qualquer exemplo de tal situação, estou a seguir o livro "Learn you a Haskell for great good" e paralelamente a frequentar uma cadeira de programação funcional com haskell que me fornece outro tipo de exercicios, admitidamente mais fáceis. Alguma ideia? (Edit: movido de outro fórum para aqui)
  9. nuno35

    IO

    Boa tarde Tenho aqui um problema para o complicado de IO, vamos por partes portanto tenho de ir recebendo dados dos utilizadores e posso receber Texto, negrito ou Italico sempre que for um desses continua a receber quando for outra coisa qualquer para da a resposta que basicamente é fazer o putStrLn das coisas que recebi por exemplo se recebi Italico Negrito Texto tenho de fazer o putStrLn de Texto Negrito Italico Ora a minha ideia era fazer assim: receber :: IO() calculadora = do expressao <- getLine if expressao == ""Texto || expressao == "Negrito" || expressao == "Italico" then //Aqui a minha ideia era colocar a expressao numa lista masnao estou a ver como posso faze lo receber()//Chama outra vez a funçao else //Aqui escreve a lista que fui criando mas tenho muitas duvidas como e que posso fazer isto. Desde já Obrigado
  10. nuno35

    Função recursiva transporta

    Boa Tarde Tenho aqui um duvida nesta função ghci> transposta ["azul", "verde", "roxo"] ["avr","zeo","urx","ldo","e"] ghci> transposta ["verde", "encarnado"] ["ve", "en", "rc", "da", "er", "n", "a", "d", "o"] Tenho algumas ideias mas tenho sempre o proble de como fazer o resto de x Transposta [[a]] -> [[a]] Trnsposta [] = [] Trnsposta (x:xs) = take 1 x : transposta xs Poderia fazer o drop 1 x para o elemento mas nao estou a ver como
  11. Boa Noite Estou aqui com dúvidas em dois exercícios. Um é encontrar um elemento numa lista para o qual o predicado seja verdadeiro tenho duas formas, mas não sei se estão corretas: -- 1ª Forma encontra predicado " " = Nothing encontra predicado (x:xs) |predicado x == True = x |otherwise encontra predicado xs -- 2º Forma encontra predicado lista = let lista = filter predicado lista lista!!0 na segunda forma não sei como posso devolver a posição 0 O segundo exercício é dividir uma string numa lista de string de tamanho k Exemplo: > Fatias 3 "olalisboa" ["ola","lis","boa"] Se não for uma divisão certa a última string pode ter mais um ou menos 1 elementos Alguém me pode dar uma ajuda nestes exercícios? desde já Obrigado
  12. nuno35

    Tipo de dados e propriedades

    Boa tarde tenho este tipo de dados que pode ter uma subarvore e tenho a seguite duvida data HTML = Div [html] | Texto String | Negrito String quero fazer uma funcao que passa o o Texto para negrito e tenho este codigo que nao sei se esta correto converter _ _ = _ _ converter Texto x = Negrito x e tenho de fazer uma propriedade que verifique que a arvore principal é mais profunda que as subarvores e a minha duvida é como aceder as sub arvores tenho: (supoe-se que tenho uma funcao profundidade) prop_maior_arvore :: HTMl -> Property prop_maior_arvore html = profundidade html > profundidade (tenho aqui a duvida de como aceder a subarvore de html) Desde já obrigado
  13. nuno35

    Tipo de dados

    Boa tarde Tenho este tipo de dados: data exp = Variavel Char | Inteiro Int | Mais Exp Exp | Vezes Exp Exp para escrever isto tipo de expressao 3(x+2y) let expr = Vezes (Inteiro 3) (Mais (Variavel 'x')(Vezes (Inteiro 2) (Variavel 'y'))) e agr tenho de fazer uma funcao que de o comprimento da expressao o comprimento e dado pelo numero de operadores (Mais e Vezes) ghci> comprimento expr 3 Como posso fazer esta funcao ? desde ja obrigado
  14. nuno35

    Tipos de dados e funções

    Boa Tarde Estou aqui com uma duvidas nesta parte do haskell estou a criar um tipo de dados: data avalia deriving (Show) e quero criar uma funcao de soma deste tipo( (soma):: avalia -> avalia -> avalia) para fazer: ghci> :t cont3 soma cont 1 cont 3 soma cont 1 :: avalia mas sinceramente nao estou a perceber nem como se faz nem o objetivo quem puder ajudar com uma explicaçao e com uma ajuda neste caso Desde ja obrigado
  15. nuno35

    Funções com where

    Boa tarde tenho este código muito simples mas que me esta a dar erros alguém me consegue explicar porque? func :: (Char,Integer) -> Double func tuplo = (o + 452 * i) where o = (tuplo!!1) i = (elemIndices tuplo!!0 "ABCDEFGHIJKL")!!0 esta a dar me erro basicamente nas especificações das duas variáveis: • Couldn't match expected type ‘[a]’ with actual type ‘(Char, Integer)’ • In the first argument of ‘(!!)’, namely ‘tuplo’ In the expression: (tuplo !! 1) In an equation for ‘o’: o = (tuplo !! 1) • Relevant bindings include o :: a (bound at t3_fc48542.hs:10:9) aparece o mesmo para a especificação do i Desde já Obrigado
  16. nuno35

    Listas de Tuplos

    Boa tarde tenho aqui uma duvida tenho esta lista [1,2,3] como é que posso eliminar um elemento da lista pelo índice? desde já obrigado
  17. nuno35

    Listas

    Bom Dia Tenho aqui duas duvidas simples mas que nao estou a conseguir resolver e secalhar ate existe uma função para isto, é basicamente dividir uma lista em tuplos de dois. por exemplo [1,2,3,4,5,6] fica [(1,2),(3,4),(5,6)] alguma ideia ? e o outro é ir buscar o indicie de um elemento de uma string tenho 2 e quero saber o índice dele na srtring"1234" Desde Já obrigado
  18. nuno35

    Guardas

    Ola outra vez estou aqui com um problema tenho este código: movel :: [Char] -> Char movel_2 [] = " " movel_2 (x:xs) | x!!0 == "2" = "abc" | x!!0 == "3" = "def" | x!!0 == "4" = "ghi" | x!!0 == "5" = "jkl" | x!!0 == "6" = "mno" | x!!0 == "7" = "pqrs" | x!!0 == "8" = "tuv" | x!!0 == "9" = "wxyz" |otherwise = " " à frente de cada linha depois é para fazer a chamada recursiva mas por enquanto assim já me esta a dar um erro (Couldn't match type ‘Char’ with ‘[[Char]]’) supostamente penso que agr o erro seja por causa da comparação alguém me pode explicar sff é para receber uma coisa assim ["2","33","2"] entao o x primeiro vai ser o 2 e o x!!0 tambem dois estou a por a primeira posição porque podem aparecer 22 Desde Já Obrigado
  19. Boa Tarde Quero agradecer desde já a ajuda que me teem dado nesta linguagem que nao é nada fácil ainda estou a tentar perceber muita da sintaxe e a principal duvida que estou a ter agr é nas funções queria ter varias funções num ficheiro compilar esse ficheiro e dps poder chamar cada uma das funções com os seus parâmetros por exemplo: soma :: Int -> Int soma x let resultado = [ x + y | y <- [0..100]] show resultado e dps no terminal fazer: > soma 3 Desde já Obrigado
  20. nuno35

    Árvore

    Boa Tarde Tenho uma arvore de uma familia e tenho de percorrer a arvore e quando encontrar um nome acrecentar um descendente ja estive a procurar bastante mas nao consigo encontrar uma maneirade percorrer a arvore, alguem pode dar uma ajuda? Desde ja Obrigado
  21. nuno35

    ANSWERED Percorrer listas

    Boa Tarde Tenho aqui uma duvida eu tenho um numero e tenho a lista x que vai do 1 ate esse numero [1..numero] e a lista y que vai do numero ate ao 0 [numero..0] e quero percorrer as duas e ir somando e ver quando dava o numero quando der fazia o show do (x,y) estava a tentar fazer do género: numero =100 [if x+y == numero then let resultado = (x,y) |x<-[1..numero] y<-[numero]] mas o if nao me esta a dar para por ali e nao me estou a lembrar de outra maneira de fazer isto. Desde já Obrigado
  22. nuno35

    ANSWERED Somar Listas

    Boas Tenho aqui uma duvida tenho este código: [x + y | x<-[6,7,8], y<-[1,2,3]] o que isto vai fazer é a cada x somar todos os numero da lista y e eu quero é que o 6 some com o 1 o 7 com 2 e o 8 com o 3 ficando [7,9,11] alguém me pode dar uma ajuda como fazer isto? Desde já Obrigado
  23. Pedro Augusto

    Tempo de execução do código

    Olá Senhores, preciso medir o tempo de execução de alguns códigos em Haskell, preciso do tempo Real, User e Sys. Como proceder?
  24. nuno35

    Somar dígitos

    Boa tarde estou a tentar fazer uma funçao que some os digitos de um numero a funçao recebe um numero de 1 ate 999 e por exemplo se for 234 tem de devolver 9(2+3+4). Estava a tentar fazer usando o resto da divisao mas nao estou a conseguir alguma ajuda sff
  25. nuno35

    Filtrar Lista

    Ola tenho aqui um problema Tenho uma lista de numeros e tenho de percorrer essa lista e ver se os 5 vizinhos de cada numero sao divisiveis por dois se nenhum vizinho for tenho de por esse numero numa lista e no fim devolver a lista com todos os numeros que nao teem vizinhos divisiveis por 2 alguma ajuda sff. [y | numeros, if y + 5 `mod` 2 == 0 then y:resultado] tenho isto mas so ve o 5º à sua frente
×
×
  • 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.