Ir para o conteúdo
Polmax

Duvida,função de orden superior

Mensagens Recomendadas

Polmax    0
Polmax

tenho uma função que utiliza outra função

type Ponto=(Float,Float)
distancia ::Ponto->Ponto->Float
distancia .......
comprimentoLP ::(Ponto->Ponto->Float)->[Ponto]->Float
comprimentoLP d [] = 0
comprimentoLP d (x:x1:xs) = distancia x x1 + (comprimentoLP d xs)

nao me da erro mas quando vou ao ghci e escrevo comprimentoLP [(0,0),(1,2),(3,5)]

dame erro , diz que esta a espera de Ponto->Ponto->Float e eu estou a passar um [t0]

alguem sabe queo que fiz mal ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Polmax    0
Polmax

pior nao esta definido para quando so tem 1, ja esta definido agora

 distancia d [x] =0

e para dois esta definido bruno

faz distancia x1 x2 + 0

continua a dar o mesmo erro quando lhe passo os argumentos

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Polmax    0
Polmax

nao me da erro mas quando vou ao ghci e escrevo comprimentoLP [(0,0),(1,2),(3,5)]

dame erro , diz que esta a espera de Ponto->Ponto->Float e eu estou a passar um [t0]

alguem sabe queo que fiz mal ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Polmax    0
Polmax

Não estou a ver onde, distancia recebe dois pontos como argumento e comprimento recebe uma função e uma lista, onde tou a fazer mal ? :/

EDIT : Ja percebi , tenho que dizer comprimentoLP distancia [Ponto] no ghci

ha alguma maneira de quando eu escrever comprimentoLP a função va buscar a função distancia

e quando for escrever no interpretador que so tenha que escrever comprimentoLP [Ponto] ?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
brunoais    69
brunoais

Há. Usa o sistema de curryfication. Corres uma parte do código antes e depois corres o resto mais tarde na execução... Mas não estou a ver em concreto ocmo fazer para o teu código.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Polmax    0
Polmax

Realmente tens razão -.-

Se fosses meu professor agora estava reprovado  :-[

Obrigado pela observação, já esta como eu queria a função , nem me tinha apercebido que não tava la a fazer nada aquele argumento.

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