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. Boas! Estou a tentar resolver uma função splitFTree :: (FTree a b) -> (BTree a, LTree b) que separa uma árvore com informação nos nodos e nas folhas em duas árvores de tipos diferentes. Sendo os tipos: data FTree a b = Leaf b | No a (FTree a b) (FTree a b) data BTree a = Empty | Node a (BTree a) (BTree a) data LTree a = Tip a | Fork (LTree a) (LTree a) Escrevi a seguinte solução: splitFTree :: (FTree a b) -> (BTree a, LTree b) splitFTree (Leaf a) = ( Node a Empty Empty , Tip a ) splitFTree (No a e d) = let (b1,l1) = splitFTree e
  2. skp9

    [Resolvido] Duvida '\n'

    Boa noite, tenho uma dúvida em relação a um exercicío em Haskell que gostava que me ajudassem a perceber porque não está a resultar. A pergunta é: Defina Extracto como instância da classe Show, de forma a que a apresentação do extracto seja por ordem de data do movimento com o seguinte, e com o seguinte aspecto: Saldo anterior: 300 ------------------------------------------------------ Data Descricao Credito Debito ------------------------------------------------------- 2010/4/5 DEPOSITO 2000 2010/8/10 COMPRA 37,5 2010/9/1 LEV
  3. Boa tarde! Gostaria que me ajudassem aqui numa pequena coisa num exercício em Haskell. É o seguinte : Depois aparecem os seguintes exercícios: Ora bem, a minha dúvida não está em como resolver os exercícios uma vez que tenho as resoluções mas em como testa-los. Por exemplo, em exercicios de matrizes eu definia: type Mat a = [[a]] e depois para testar criava uma matriz do genero: m1 :: Mat Int m1 = [[1,2,3],[0,4,5],[0,0,6]] e sempre que queria testar usava essa matriz. Eu queria saber como criar um agenda (neste caso) de modo a que dê para testar. Já tentei imensas vezes e n
  4. Desintegration

    Função replace

    Boas alguém me pode esclarecer como fazer estas duas funções 1ª replace :: Int -> [a] -> [a] -> [a] (exemplo: replace 2 ['a','b','c','d'] [z] ['a','b','z','d'] o "a" é a 0 posição sendo a 2 posição o "c" fazendo replace do "c" pelo "z" 2ª replace Tab tab -> (Int,Int) -> tab
  5. pvasconcelos

    Haskell no mundo real - Facebook

    Aqui vai uma apresentação sobre o uso de Haskell dentro do Facebook para deteção de spam. https://www.youtube.com/embed/sl2zo7tzrO8?feature=oembed
  6. troco n b soma a = if soma /= n then troco (n- (soma *maximum a) ) ( b ++ maximum [a]) (soma+1) a else soma Olá pessoal, para ter o troco mínimo de um valor eu tenho que sempre escolher a moeda de maior valor e diminuir o valor de n, nesse caso o algoritmo está em loog infinito. troco 71 [] 0 [25,10,5,1] A ideia era que a saída fosse o valor mínimo de moedas utilizadas no troco.
  7. luis_gomes

    Sokoban em Haskell

    Boas pessoal, estou a inicar agora um projeto que consiste em fazer um programa em haskell com o código fonte do jogo sokoban (http://sokoban.info) Nesta primeira fase o principal objetivo é verificar se um determinado mapa cumpre alguns requisitos. Os mapas que serão passados ao programa terao a seguinte estrutura: (mapa) (coordenadas do boneco e das caixas) EX: ################### ##### ########### ##### ########### ##### ########### ### ########## ### # ## ########## # # ## ##### ..# # ..# ##### ### # ## ..# ##### ######### ################### 11 2
  8. boas pessoal estive a fazer uma ficha de programaçao funcional em haskell e fiz os exercicios todos no mesmo documento. no exercicio 20, ao tentar dar load para verificar se funcionava, não consegui porque deu este erro: "parse error (possibly incorrect indentation or mismatched brackets)" mas, se eu meter a função num documento isolado, não tenho problemas e ela funciona direitinho. eis a função: presunto :: Eq a => [a] -> [a] -> Bool presunto [] x = True presunto x [] = False presunto (h:t) (x:y) = if (h==x) then presunto t y else presunto (h:t) y sabem-me dizer o que pos
  9. Sir Reng

    Dúvidas Exercicio

    Boas, venho cá postar 2 exercicios que ando com dúvidas. 1. Apresente uma definição recursiva da funcão (pre-definida): enumFromTo :: Int -> Int ->[int] Que constroi a lista dos numeros inteiros compreendidos entre dois limites. Por exemplo, enumFromTo 1 5 corresponde a lista [1,2,3,4,5] 2. Apresente uma definição recursiva da funcão (pre-definida): enumFromThenTo :: Int -> Int-> Int -> [int] Que constroi a lista dos numeros inteiros compreendidos entre dois limites e espacados de um valor constante. Por exemplo: enumFromTo 1 3 10 corresponde a lista [1,3,5,7,
  10. skp9

    Função group

    Boas, Tenho dificuldades num exercicio que me apareceu de Haskell e gostava que me pudessem ajudar. Aqui vai: Função group :: Eq a => [a] -> [[a]] que agrupa elementos iguais e consecutivos de uma lista. Por exemplo, group [1,2,2,3,4,4,4,5,4] corresponde a [[1],[2,2],[3],[4,4,4],[5],[4]]. Obrigado
  11. Boas. Venho cá mais uma vez postar uma dúvida Estou a tentar resolver exercicios de Haskell e estava a conseguir até agora. Exercicio: (a) Defina uma funcão que recebe 3 pontos que são os vertices de um triângulo e devolve um tuplo com o comprimento dos seus lados. module Tentativa where type Ponto = (Float,Float) compTri :: (Ponto,Ponto,Ponto) -> (Float,Float,Float) compTri (x1,y1) (x2,y2) (x3,y3) = (sqrt ((x2-x1)^2+(y2-y1)^2)),(sqrt ((x3-x2)^2+(y3-y2)^2)),(sqrt ((x3-x1)^2+(y3-y1)^2)) Erro que deu no Haskell: Tentativa.hs:4:10: Parse error in pattern: (x1, y1) Failed, module
  12. Sir Reng

    Dúvida Raizes

    Olá colegas. Antes demais, só queria dizer que sou novo por aqui e a programar. E encontrei este forum, espero gostar e tentar ajudar no máximo que puder. Mas estou aqui com uma dúvida que é o seguinte: A funcão nRaizes que recebe os (3) coecientes de um polinomio de 2º grau e que calcula o numero de raizes (reais) desse polinomio. Eis o que fiz: Raizes :: Float -> Float -> Float-> Float Raizes a b c = [(-(b)-sqrt (b)^2 -4*a*c)/2*a , (-(b)+sqrt (b)^2 -4*a*c)/2*a] Agredeço a ajuda e que corrijam o que estiver mal, pois é com erros que se aprende
  13. Hell0

    Número múltiplo de outro

    multiplo – tal que multiplo m n testa se o numero inteiro m e multiplo de n. Ajuda nesta pergunta
  14. Olá senhores, estou a ter grandes problemas na construção de uma função rotina' que recebe uma Barra e uma lista de pousos devolve uma Maybe Barra. Vejamos abaixo o código completo. type Passaros = Int type Barra = (Passaros, Passaros) data Pos = Esq | Dir deriving (Eq, Show) type Pouso =(Pos, Passaros) pousoEsq :: Passaros -> Barra -> Maybe Barra pousoEsq n (esq, dir) | abs ((esq+n) - dir) < 4 = Just (esq +n, dir) | otherwise = Nothing pousoDir :: Passaros -> Barra -> Maybe Barra pousoDir n (esq, dir) | abs (esq -(dir+n)) < 4 = Just (esq, dir+n) | otherwise = No
  15. Erro: getElts :: [int] -> [a] -> Maybe [a], recebe uma lista de indices e uma lista e retorna uma lista Maybe[a] dos elementos: Segue o código até onde eu fiz, getElts :: [int] -> [a] -> Maybe [a] getElts [] (x:xs) = return [] getElts (y:ys) xs = do { elem1 <- (?!) xs y; elem2 <- getElts ys xs; return (elem1:elem2); } (!?) :: [a]-> Int -> Maybe a (!?) xs i | i < 0 = Nothing (!?) [] _ = Nothing (!?) (x:_) 0 = Just x (!?) (_:xs) i = xs !? (i-1) contudo não sei se minha ideia para retornar uma lista com os indices ditos na lista de indices está correta. Erro:
  16. Olá a todos, alguém poderia exemplificar os operadores principais que envolvem operações de Monads. por exemplo: acumulate2 :: [iO ()] -> IO () acumulate2 [] = return () acumulate2 (x:xs) = do { x; z<-acumulate2 xs; return z; --x >> acumulate2 xs; } sequencia :: [iO a] -> IO() sequencia [] =return () sequencia (x:xs) = do { x; sequencia xs; } Aqui em acumulate2 eu tenho uma lista com acções de IO gera a saída, em sequência em tenho uma lista de acções de IO mas não geram saída. Por exmeplo, como faria isso em o do? Quero dizer usando combinadores: >>=, >>,
  17. crislanio_macedo

    Swap com Maybe

    Tenho as seguintes funções: replace :: Int -> a -> [a] -> [a] replace i x [] = if (i==0) then [x] else [] replace i x xs = take (i-1) xs ++ [x] ++ drop i xs -- começa do 0 e nao do 1 como acima replace2 i x [] = if (i==0) then [x] else [] replace2 i x xs = take (i) xs ++ [x] ++ drop (i+1) xs replace3 i x [] = if (i==0) then [x] else [] replace3 i x xs = take (i) xs ++ [x] ++ drop (i-1) xs -- ------------------------------------------------------------------ -- operador de versao do (!!) -- *Main> (!?) [1,23,4,5] 1 -- Just 23 (!?) :: [a]-> Int -> Maybe a (!?) xs i | i
  18. LinneuDM

    Tabuada e Contador em uma Lista

    Boa tarde, pessoal! Estou com uma actividade na minha faculdade. Tenho um problema que não consigo resolver. Já dividi em funções. Mas, não consigo adicionar a tabuada e o contador ambos dentro de uma lista. Vejam só: {-Faça um programa em Haskell que lido um número n, armazene em uma lista: o elemento, o contador e o resultado da multiplicação entre eles, como cada elemento da lista -} addNum num |num == 0 = 0 : [] |otherwise = num : addNum(num-1) mult2 num = [num*x | x<-[0..num]] addLista num = do addNum(num) mult2(num) Algum amigo poderia me ajudar a resolve
  19. Aqui está o código. vogais = ['A','E','I','O','U', 'a','e','i','o','u'] eVogal x = if elem x vogais then True else False countVogal :: String -> Int countVogal "" = 0 countVogal (x:xs) = if eVogal x then 1+countVogal xs else countVogal xs mostra :: Int -> String -> [string] mostra n f = filter (countVogal>n) (words f) Contudo na função mostra não está a retornar as palavras como deveria.
  20. Olá a todos, como faria uma função segura usando a notação >>= safeLogSqrt2 :: (Floating a, Ord a) => a -> Maybe a safeLog :: (Floating a, Ord a) => a ->Maybe a safeLog x | x >0 = Just (log x) | otherwise = Nothing safeSqrt :: (Floating a, Ord a) => a -> Maybe a safeSqrt x | x >0 = Just (sqrt x) | otherwise = Nothing -- composta log da raiz safeLogSqrt :: (Floating a, Ord a) => a -> Maybe a safeLogSqrt x = do { y <- (safeSqrt x); z <- (safeLog y); return z; } Eu fiz aqui usando a notação do, mas não faço a mínima ideia de como usar o operad
  21. angelicous

    Anamorfismo de BTree

    Boas pessoal, precisava da vossa ajuda para saber que tipo de dados é que esta função espera que eu lhe forneça para construir uma BTree anaBTree :: (c -> Either () (b, (c, c))) -> c -> BTree b Eu já tentei chamar a anaBTree com () e com (10,(20,30) ) por exemplo, mas tenho sempre um erro deste tipo: Alguém me pode ajudar a perceber melhor o tipo de dados de entrada desta função?
  22. ler linhas de texto de entrada padrão e imprime casa linhas invertida usando a função interact Olá a todos, queria a ajuda de vocês para solucionar esse impasse uma vez que a ideia era para dá certo no entanto não está dando certo, import Control.Monad main = do {interact (unlines (map (reverse) (lines))); } Erro: textoREVERSOIO.hs:7:22: Couldn't match type `[Char]' with `String -> String' Expected type: String -> String Actual type: String In the return type of a call of `unlines' Probable cause: `unlines' is applied to too many arguments In the first argument of `interact
  23. Índice Links do P@P Tutoriais Diversos Snippets Artigos Revista PROGRAMAR Documentos (Portal de Downloads) Links externos ao P@P Links do P@P Tutoriais Tutorial de Haskell Wiki Introdução ao Haskell HTML / PDF) Snippets (Uma lista actualizada dos snippets está disponível aqui.) Calculadora RPN - Reverse Polish Notation Wiki Factorização em números primos Wiki Inteiros geradores de
  24. crislanio_macedo

    Erro ao inserir numa árvore de Multconjuntos

    Olá a todos, ao tentar inserir numa árvore de multiconjuntos acontece o seguinte erro. [1 of 1] Compiling Main ( Multiconjunto.hs, interpreted ) Multiconjunto.hs:6:1: Equations for `inserir' have different numbers of arguments 18Multiconjunto.hs:6:1-38 18Multiconjunto.hs:(7,1)-(13,46) Failed, modules loaded: none. Como poderia corrigir esses números diferentes de argumentos ? data MConj a = Vazia | No a Int (MConj a) (MConj a) deriving (Show, Eq) -- No 'A' 2 Vazio (No 'B' 1 Vazio Vazio) inserir x a Vazia = No x a Vazia Vazia inserir x (No e a esq dir) | x==e = No e a (inserir
  25. Olá a todos, estou a fazer um programa bem simples onde tenho que listar o número de palavras e linhas de um arquivo dado como entrada. Seque o código abaixo para verificaçaõ. module Main where -- ghc teste.hs -o teste -- cat arquivo.txt | ./teste main = do linhas <- interact (show.length.lines) palavras <- interact (show.length.words) putStrLn $ "Numero de linhas: " ++ show linhas ++ " " putStrLn $ "Numero de palavras: " ++ show palavras ++ " " contudo quando execulto: ghc teste.hs -o teste cat arquivo.txt | ./teste acontece o sequinte: $ cat arquivo.txt | ./teste 2teste
×
×
  • 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.