O desafio da aula de hoje (07/04) foi implementar um programa em haskell que ordene uma lista com determinadas palavras ou numeros.
Segue a baixo o programa implementado em sala com algumas modificacoes:
ordena (x:xs)
| (x:xs) == [] || xs == [] = (x:xs)
| x <= head (ordena xs) = (x:xs)
| x > head (ordena xs) = head (ordena xs) : ordena (x : tail (ordena xs) )
Bug encontrado:
Main> ordena ["ca","bb","aa","dd"]
["aa","bb","ca","dd"]
Main> ordena [5,4,3,2,1]
[1,2,3,4,5]
Main> ordena [1,3,3,2,5,4]
[1,3,3,2,5,4]
Main> ordena [1,3,2,5,4]
[1,3,2,5,4]
Main> ordena [1,3,2,5,4,0]
[0,1,2,3,4,5]
Como podem perceber as vezes ele funciona e as vezes n!
A entrada 1,3,2,5,4 nao funciona mas qndo eu adiciono um 0 no final dela a ordenacao n apresenta erros.. Vou procurar o motivo do bug para informa-los aqui.. se alguem souber e puder me ajudar favor deixar comentarios!
Nenhum comentário:
Postar um comentário