nuno35 0 Posted November 18, 2018 Report Share Posted November 18, 2018 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 Link to post Share on other sites
pwseo 234 Posted November 18, 2018 Report Share Posted November 18, 2018 @nuno35, Qual é o objectivo do tipo de dados que estás a tentar criar? A declaração que mostraste está incompleta, pelo que não consigo perceber os teus exemplos. Link to post Share on other sites
nuno35 0 Posted November 18, 2018 Author Report Share Posted November 18, 2018 basicamente o objetivo é avaliar expressoes aritmeticas o tipo de dados é suposto ser abstrato o tipo de dados tambem é para ter o operador soma para fazer aquilo que demonstrei isto serve apenas para construir expressoes Link to post Share on other sites
pwseo 234 Posted November 18, 2018 Report Share Posted November 18, 2018 Se o teu tipo de dados tem como objectivo abstrair o conceito de expressões aritméticas, então deverás ter em conta que ele deve conseguir representar os diferentes componentes de uma expressão: termos, operadores (e expressões). O que sabes sobre a utilização de data em Haskell? Seguramente já te foram dados exemplos disto nas aulas. Repara no que é exposto neste Wikibook: https://en.wikibooks.org/wiki/Haskell/GADT#Arithmetic_expressions Posto isto: o que já tentaste fazer e que dúvidas/erros persistem? Link to post Share on other sites
nuno35 0 Posted November 19, 2018 Author Report Share Posted November 19, 2018 Eu nao estou a perceber muito bem esta parte da matéria o que já fiz foi criar o tipo de dados que pelo que pesquisei é com o data esse tipo de dados tem de ser abstrato e nao tem construtor e é exportado de um modulo com mais alguma funções criei assim o modulo e o tipo de dados: module X (Avalia, const, avar )where data Avalia deriving (Show) tambem é suposto o modulo exportar o operador /+/ agora primeiro estou a tentar fazer a função const e operador /+/ é suposto eles fazerem isto: ghci> :t const 3 const 3 :: avalia ghci> :t const 3 /+/ const 1 const 3 /+/ const 1 :: avalia e é esta parte que nao estou a perceber isto serve apenas para construir expressões e nao as realizar mas nao estou mesmo a perceber o codigo que tenho de fazer para dar isto Desde ja obrigado Link to post Share on other sites
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now