Ir para o conteúdo
crislanio_macedo

Erro ao inserir numa árvore de Multconjuntos

Mensagens Recomendadas

crislanio_macedo    0
crislanio_macedo

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 x a esq) dir
   | x = No e a (inserir x a esq) dir
   | x>e	    = No e a esq (inserir x a dir)

Editado por crislanio_macedo

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
crislanio_macedo    0
crislanio_macedo

Deu certo !!!

data MConj a = Vazia | No a Int (MConj a) (MConj a) deriving (Show, Eq)


-- *Main> let a = No 'A' 2 Vazia (No 'B' 1 Vazia Vazia)
-- *Main> inserir 'C' 2 a
-- No 'A' 2 Vazia (No 'B' 1 Vazia (No 'C' 2 Vazia Vazia))
-- *Main> let c = No 'A' 2 Vazia (No 'B' 1 Vazia (No 'C' 2 Vazia Vazia))
-- *Main> inserir 'C' 3 c
-- No 'A' 2 Vazia (No 'B' 1 Vazia (No 'C' 2 (No 'C' 3 Vazia Vazia) Vazia))

inserir x a Vazia = No x a Vazia Vazia
inserir x c (No e i esq dir)
   | x==e
    = No e i (inserir x c esq) dir
   | x
    = No e i (inserir x c esq) dir
   | x>e
    = No e i esq (inserir x c dir)


{- *Main> let a = No 'A' 2 Vazia (No 'B' 1 Vazia Vazia)
*Main> a
No 'A' 2 Vazia (No 'B' 1 Vazia Vazia)
*Main> listar a
"AB" -}
listar :: MConj a -> [a]
listar Vazia = []
listar (No x e esq dir) = x:((listar esq) ++ (listar dir))

Editado por crislanio_macedo

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.