Questão 34: pMaior
Voltar
Apresente uma definição recursiva da função pMaior :: Ord a => [a] -> Int
que dada uma lista não vazia, retorna a posição onde se encontra o maior elemento da lista. As posições da lista começam em 0, i.e., a função deverá retornar 0 se o primeiro elemento da lista for o maior.
Exemplo
> pMaior [2,6,3,1,5,4]
1
> pMaior [30,10,20,40,0]
3
Resolução
pMaior :: Ord a => [a] -> Int
pMaior [_] = 0
pMaior (h:t)
| h >= (t !! x) = 0
| otherwise = 1 + x
where x = pMaior t