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. maierlly oliveira

    Número de ocorrências numa lista

    olá!! Sou iniciante na linguagem Haskell e pesquisando listas de exercícios para praticar e entender mais me deparei com essa questão: Suponha que tenhamos uma lista de inteiros e que desejamos ordenar seus elementos de acordo com suas ocorrências. Isto é, teremos os elementos mais raros posicionados primeiro e os elementos mais frequentes por último. Exemplos: [4,4,2,1,3,3,2,4,3,4] -> [1,2,3,4] [5,3,5,3,5,3,7,1,3,1,3,5] -> [7,1,5,3] Alguém pode me ajudar a como desenvolver ela. obs: penso que deva ser criada uma função que compare os elementos da lista verificando
  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: descompa
  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. 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)
  5. 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]])))
  6. 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.
  7. 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 d
  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 geradore
  9. 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 geradore
  10. 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 == "Ital
  11. 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
  12. 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","
  13. 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 ht
  14. 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
  15. 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
  16. 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 includ
  17. 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
  18. 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
  19. 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 c
  20. 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
  21. 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
  22. nuno35

    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
  23. nuno35

    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
  24. 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?
  25. 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
×
×
  • 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.