¿Por qué el mapa devuelve un elemento adicional cuando se usan rangos en Haskell?
Acabo de empezar a aprender Haskell y encontré algo extraño.
Vamos a tener una lista:
ghci> [0,2..5]
[0,2,4]
Tiene 3 elementos. Cuando usomap
con esta lista obtengo 3 elementos como salida, por ejemplo:
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]
Pero cuando uso la división fraccional obtengo 4 elementos en la lista de salida:
ghci> map (/ 2) [0,2..5]
[0.0,1.0,2.0,3.0]
ghci> length (map (/ 2) [0,2..5])
4
¿Podría explicar por qué?map
puede devolver más elementos de lo que era?
¡Gracias!