crislanio_macedo Posted March 13, 2015 at 10:42 PM Report Share #579363 Posted March 13, 2015 at 10:42 PM (edited) 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 `Arv a1 -> Arv a1' with actual type `Arv a1' The function `inserir' is applied to three arguments, but its type `a1 -> Arv a1 -> Arv a1' has only two In the second argument of `No', namely `(inserir x No esq)' In the expression: No e (inserir x No esq) dir arvore.hs:27:35: Couldn't match expected type `Arv a1' with actual type `a0 -> Arv a0 -> Arv a0 -> Arv a0' In the second argument of `inserir', namely `No' In the second argument of `No', namely `(inserir x No esq)' In the expression: No e (inserir x No esq) dir arvore.hs:29:29: Couldn't match expected type `Arv a1 -> Arv a1' with actual type `Arv a1' The function `inserir' is applied to three arguments, but its type `a1 -> Arv a1 -> Arv a1' has only two In the third argument of `No', namely `(inserir x No dir)' In the expression: No e esq (inserir x No dir) arvore.hs:29:39: Couldn't match expected type `Arv a1' with actual type `a2 -> Arv a2 -> Arv a2 -> Arv a2' In the second argument of `inserir', namely `No' In the third argument of `No', namely `(inserir x No dir)' In the expression: No e esq (inserir x No dir) Failed, modules loaded: none. Edited March 14, 2015 at 07:01 PM by crislanio_macedo Link to comment Share on other sites More sharing options...
pwseo Posted March 14, 2015 at 12:21 PM Report Share #579384 Posted March 14, 2015 at 12:21 PM crislanio_macedo, Certamente já tiveste tempo de perceber que neste fórum o pessoal está sempre disponível para as dúvidas dos outros; temos todo o gosto em ajudar quem por cá passa. No entanto, os teus posts têm sido cada vez mais difíceis de compreender. os teus títulos são confusos: de que me serve ter no título a definição de um tipo de dados? os teus excertos de código nunca têm coloração -- é necessário aprenderes a utilizar o fórum devidamente, para facilitar o trabalho de quem te quer ajudar os teus excertos de código são desorganizados, sem linhas em branco e sem indentação, o que dificulta (mais uma vez) o trabalho de quem te quer ajudar Penso que dá para ter uma ideia de onde quero chegar. Só queria mesmo deixar claro que ainda não respondi a este tópico precisamente porque o aspecto do teu post intimida e tira a vontade de o ler. Corrige lá o que falei e podemos falar do problema que tens com o código nessa altura. Link to comment Share on other sites More sharing options...
crislanio_macedo Posted March 14, 2015 at 05:33 PM Author Report Share #579409 Posted March 14, 2015 at 05:33 PM Quando eu tento adicionar alguma cor no código, dá erro, e fica a tag da cor e não muda a cor quando eu visualizo o tópico. Link to comment Share on other sites More sharing options...
pwseo Posted March 14, 2015 at 05:49 PM Report Share #579413 Posted March 14, 2015 at 05:49 PM Apesar do título estar agora melhor (menos confuso), o post deveria ter algum tipo de texto. Da forma que está, parece que simplesmente deixaste cair o código como uma bomba no fórum e respectivo missal de erros, e quem quiser que leia e ajude -- isto só te prejudica. E quanto à coloração do código, há inúmeras pessoas a escrever diariamente neste fórum sem qualquer problema na utilização correcta das tags para código. Normalmente os vossos problemas devem-se à utilização do editor avançado (aquele que permite colocar texto em itálico, negrito, etc) -- a solução ideal é desactivar esse modo e escrever os posts directamente em BBCode. Poderás investigar isso no teu tempo livre. Mas deixemos estas questões de lado (só desta vez). Relativamente ao teu problema, parece-me que a questão se deve às duas linhas finais da tua função inserir: 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 -- onde tens "No esq" deveria ser apenas "esq" | x > e = No e esq (inserir x No dir) -- onde tens "No dir" deveria ser apenas "dir" Tenta perceber o porquê de ser como eu digo e não como tu tinhas. Link to comment Share on other sites More sharing options...
thoga31 Posted March 14, 2015 at 05:49 PM Report Share #579414 Posted March 14, 2015 at 05:49 PM Em 14/03/2015 às 18:33, crislanio_macedo disse: Quando eu tento adicionar alguma cor no código, dá erro, e fica a tag da cor e não muda a cor quando eu visualizo o tópico. É óbvio que não funciona - o código está dentro das tags CODE, as quais ignoram o BBCode. O @pwseo refere-se ao uso apropriado das tags CODE, indicando a linguagem para que seja feito highlight. Eu tenho feito o highlight dos teus tópicos - nunca te apercebeste? -, mas já começa a chegar a altura de seres tu a fazê-lo. O objectivo é que o código fique assim... data Arv a = No a (Arv a) (Arv a) | Vazia deriving Show ... em vez de ... data Arv a = No a (Arv a) (Arv a) | Vazia deriving Show Knowledge is free! Link to comment Share on other sites More sharing options...
crislanio_macedo Posted March 14, 2015 at 06:57 PM Author Report Share #579434 Posted March 14, 2015 at 06:57 PM (edited) Ok, agora terei esse cuidado, e verificarei minhas publicações. Edited March 14, 2015 at 07:02 PM by crislanio_macedo Link to comment Share on other sites More sharing options...
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