• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

t0xe

[RESOLVIDO]instancia Show

6 mensagens neste tópico

boas ppl,

a minha duvida e um pouco ingenua, mas como não percebo muito de instancias, e depois de muitos erros que nao sei como contornar, decidi que mais valia perguntar:

eu tenho tres tipos de dados:

type Tabuleiro = [Linha]

type Linha = [Jogada]

type Jogada = Int

ora queria declarar uma instancia do Show para me mostrar Jogadas da seguinte forma:

instance (Show a)=>Show (Jogada) where
show x = case x of:
                  0->"1caracter"
                  1->"2caracter"
                  2->"3caracter"
                  _->"?"

mas como é obvio Jogada é um Int e há um conflito enre este Show e o Prelude.Show.. ha alguma forma de fazer isto de maneira diferente? usando data em vez de type ou assim?

obrigado desde ja

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes resolver o problema usando o data, ou então podes criar uma nova classe que implemente a função que queres (pessoalmente, discordo da utilização da classe Show da forma como o estás a fazer, e optaria pela segunda opção).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tentei usar o data mas não estou mt a ver que implementação faria (cm quem diz que não percebo mto disso) pis acho que o data tem que ser uma coisa do genero

data Tabuleiro a = qqCoisa a

certo? e n sei bem como por..

assim?:

data Tabuleiro a = [linha] ?

EDIT: e a implementação de uma nova classe? uma classe do genero Tabuleiro? Alguma maneira simples de fazer isso? o principal problema é que fiz tudo ao contrario.. comecei pela implementação do programa todo (já esta a funcionar perfeitamente) e só agora é que estou a tratar destas coisas...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu fazia axim

type Tabuleiro = [Linha]
type Linha = [Jogada]
data Jogada = Joga Int


instance Show (Jogada) where
     show (Joga x) = case x of:
                              0->"1caracter"
                              1->"2caracter"
                              2->"3caracter"
                              _->"?"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

RSFalcon7 obrigado  :)

Já consegui implementar.. Não sei se irei mesmo usar isto, porque o trabalho é para entregar no domingo e como já tenho muita coisa feita mesmo, ia ter que declarar muitas outras instâncias (Eq e talvez Num, a avaliar pelos erros de tipos que tive), mas muito obrigado pela ajuda! abraço

0

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