Ir para o conteúdo
Polmax

Show data

Mensagens Recomendadas

Polmax    0
Polmax

Eu tenho um data type

data Som =Som{aName::String,
           aSize::Int,
           aType::String,
           aCopyright::String,
           aTitle::String,
           aArtist::String,
           aYear::Int}

Não faço a mínima de o que devo fazer para instanciar este data na classe show , tenho que indicar como são mostrados os argumentos ? ou como é mostrado o data inteiro .

acho que se começava assim não

instance Show (Som) where

(nao faço a mínima do que tenho ou como tenho que escrever as coisas aqui :/) alguma ajuda dica ou algo ? Um exemplo seria excelente

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Polmax    0
Polmax

Digamos que queria que se apresentem como esta no data

          aName

          aSize

          aType

          aCopyright

          aTitle

          aArtist

          aYear

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Polmax    0
Polmax

Estive a fazer testes a tarde toda e parece que consegui algo

module Exiftool where

instance Show (Som) where
show (Som na si ty co ti ar ye) = show na ++ "\n" ++ show si ++ "\n" ++ show ty ++ "\n" ++ show co ++ "\n" ++ show ti ++ "\n" ++ show ar ++ "\n" ++ show ye ++ "."

data Som =Som{aName::String,
           aSize::String,
           aType::String,
           aCopyright::String,
           aTitle::String,
           aArtist::String,
           aYear::String}

teste ::Som
teste = (Som "as" "asdf" "zx" "zxc" "we" "aef" "zxcw")

a minha duvida era aqui

  show (Som na si ty co ti ar ye) = show na ++ "\n" ++ show si ++ "\n" ++ show ty ++ "\n" ++ show co ++ "\n" ++ show ti ++ "\n" ++ show ar ++ "\n" ++ show ye ++ "." 

Não sabia como começar a fazer , depois pensei ," se calhar é fazer show de uma coisa que o haskell conhece , então vou tentar fazer show dos argumentos que são strings" , e consegui :O

Como não falamos muito em classes e eu não tinha tentado fazer por mim mesmo uma instancia da classe show tinha bastantes duvidas .

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Polmax    0
Polmax

Mmmm ainda bem que disseste pk vou precisar , então podia ter feito só assim ?

module Exiftool where

instance Show (Som) where
show (Som na si ty co ti ar ye) =  na ++ "\n" ++ show si ++ "\n" ++ ty ++ "\n" ++  co ++ "\n" ++  ti ++ "\n" ++  ar ++ "\n" ++ show ye ++ "."

data Som =Som{aName::String,
           aSize::Int,
           aType::String,
           aCopyright::String,
           aTitle::String,
           aArtist::String,
           aYear::Int}

teste ::Som
teste = (Som "as" 2 "zx" "zxc" "we" "aef" 2011)

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