Por que o mapa retorna um elemento adicional ao usar intervalos no Haskell?
Comecei a aprender Haskell e descobri uma coisa estranha.
Vamos ter uma lista:
ghci> [0,2..5]
[0,2,4]
Possui 3 elementos. Quando eu usomap
com esta lista, recebo 3 elementos como saída, por exemplo:
ghci> map (+ 1) [0,2..5]
[1,3,5]
ghci> map (* 2) [0,2..5]
[0,4,8]
ghci> map (`div` 2) [0,2..5]
[0,1,2]
Mas quando eu uso a divisão fracionária, recebo 4 elementos na lista de saída:
ghci> map (/ 2) [0,2..5]
[0.0,1.0,2.0,3.0]
ghci> length (map (/ 2) [0,2..5])
4
Poderia explicar por quemap
pode retornar mais elementos do que era?
Obrigado!