Pergunta

G'day pessoal,

Tentando atualmente terminar um pouco de lição de casa em que estou trabalhando e tendo um problema em que estou tentando aplicar o mapa em uma função que aceita várias entradas.

Então, no caso de estar usando o ProcessList F (X: XS) = MAP Aceleratelist F XS X XS

Lista de processos recebe um valor flutuante (f) e uma lista que classifica em outra lista

A Acelere List leva um valor flutuante (f) uma lista e um objeto de lista através do qual retorna outro objeto de lista

Sei que meu código de lista de aceleração está correto, mas não posso, para a vida minha, obter a sintaxe para este código funcionando:

processList :: Float -> [Object] -> [Object]
accelerate f [] = []
accelerate f [x] = [(accelerateForce f x x)]
accelerate f (x:xs) = map accelerateList f xs x xs

Alguma ideia? Estou coçando a cabeça há cerca de 3 horas. Eu sei que é algo verdade simples.

Foi útil?

Solução

Primeiro de vocês provavelmente vai querer usar alguns parênteses aqui:

map accelerateList f xs x xs

A função map leva exatamente dois argumentos (não cinco), então você deve fazer algo assim, por exemplo:

map (accelerateList f xs x) xs

Mas, por outro lado, isso não se encaixa nas assinaturas de sua função. O problema é provavelmente que você não estruturou sua solução de uma maneira boa o suficiente. Pode ser uma pergunta separada, mas explicar o que você está tentando realizar com a função acelerada (ou qualquer um é o "top") certamente ajudaria.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top