Warum gibt map ein zusätzliches Element zurück, wenn Bereiche in Haskell verwendet werden?
Ich habe gerade angefangen, Haskell zu lernen und eine seltsame Sache gefunden.
Lass uns eine Liste haben:
ghci> [0,2..5]
[0,2,4]
s hat 3 Elemente. Wenn ich @ benutmap
Mit dieser Liste erhalte ich 3 Elemente als Ausgabe, zum Beispiel:
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]
Aber wenn ich die gebrochene Division verwende, erhalte ich 4 Elemente in der Ausgabeliste:
ghci> map (/ 2) [0,2..5]
[0.0,1.0,2.0,3.0]
ghci> length (map (/ 2) [0,2..5])
4
Könnten Sie bitte erklären, warummap
kann mehr Elemente zurückgeben, als es war?
Vielen Dank