Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

genesis001

expressão where e Cabal

Mensagens Recomendadas

genesis001

Boas,

queria saber se alguém me consegue esclarecer o seguinte:

quando utilizamos a expressão where, a ordem das equações que a seguem importa, certo? Como é que sabemos essa ordem?

Exemplificando:

Se introduzir a seguinte função num script e em seguida abrir o ficheiro .hs não há problemas:

testa y = f b + f y + f a + 3 

    where (a,:confused: = (3*c, f 2)

              c = 10

              f x = x + 7*c

mas se trocar a ordem das equações:

testa y = f b + f y + f a + 3 

        where (a,:cheesygrin: = (3*c, f 2)

                    f x = x + 7*c

                    c = 10

aparece o seguinte erro: parse error on input '='

Não consigo determinar qual é que tem que ser a ordem das equações para que não apareça o erro...

Por exemplo na seguinte função acontece-me o mesmo:

nraizes :: Double->Double->Double->Double

nraizes a b c

| d < 0 = 0

| d > 0 = 2

| d == 0 = 1

    where d = b^2 - 4*a*c

raizes :: Double->Double->Double->[Double]

raizes a b c

    | (nraizes a b c == 2) = [r1,r2]

              where  r1 = (-b + r)/(2*a)

                          r2 = (-b - r)/(2*a)

                          r = sqrt d

                          d = b^2 - 4*a*c

    | nraizes a b c == 0 = [error "raizes imaginarias"]

    | nraizes a b c == 1 = (-b / (2*a)):[]

E alguém consegue explicar-me como é que se instala um cabal?

Agradeço a ajuda

Partilhar esta mensagem


Ligação 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.