Ir para o conteúdo
trincheiro2499

definir Frac como instância da classe Eq

Mensagens Recomendadas

trincheiro2499    0
trincheiro2499

Boa tarde,

tenho um exercício em que tenho que definir a funçao normaliza para um fracção, ate ai tudo bem. Porem depois pede para definir  Frac como instância da classe Eq para o qual tenho o seguinte código:

data Frac = F Integer Integer

normaliza::Frac -> Frac
normaliza (F n d) = F (div n a) (div d a)
                   where a= gcd n d
                   

instance Eq (Frac) where
         (x==y)
         =let F n1 d1=normaliza x
              F n2 d2 = normaliza y
              
           in n1==n2 && d1==d2

Porem isto da erro na linha do " =let F n1 d1=normaliza x", o que esta errado?

desde ja obrigado....

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Polmax    0
Polmax
data Frac = F Integer Integer

normaliza::Frac -> Frac
normaliza (F n d) = F (div n a) (div d a)
                   where a= gcd n d
                   

instance Eq (Frac) where
         x==y=let   F n1 d1 = normaliza x
                    F n2 d2 = normaliza y
              
                      in n1==n2 && d1==d2

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Betovsky    2
Betovsky

obrigado, enfim uma das razoes para eu gostar mais de c.... um enter a mais e o haskell ja se estava a queixar...

Isso é como dizer que uma chaveta a mais e o C já se estava a queixar...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Betovsky    2
Betovsky

mas as chavetas servem para agrupar a informaçao agora um espaço?

Em C, as chavetas servem para definirem um bloco de código num dado contexto. No caso do Haskell, usa o espaço para definir um bloco de código num dado contexto, como em outras linguagens, por exemplo em Python. Mas ao contrário de Python, Haskell pode usar notação explicita para delimitar um bloco, isto é, usar chavetas. Como podes verificar em http://www.haskell.org/tutorial/patterns.html#tut-layout.

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