. last sum, .
, , :
main = mapM (print . last) $ scanl incState (replicate 5 0) (repeat 1)
. ,
scanl incState (map (+1) (replicate 5 0)) (repeat 1)
, , , , mapM .
(:) -> replicate 5 0
| ^
| |_________________
v |
scanl incState (map (+1) | ) (repeat 1)
last print, , . .
0 : 0 : 0 : 0 : 0 : []
^
|_________________
|
scanl incState (map (+1) | ) (repeat 1)
mapM .
0 : 0 : 0 : 0 : 0 : []
^
|________
|
(:) -> map (+1) |
| ^
| |_________________
v |
scanl incState (map (+1) | ) (repeat 1)
last print, , .
0 : 0 : 0 : 0 : 0 : []
^ ^ ^ ^
| | | |
|+1 : |+1 : |+1 : |+1 : 1 : []
^
|_________________
|
scanl incState (map (+1) | ) (repeat 1)
mapM .
0 : 0 : 0 : 0 : 0 : []
^ ^ ^ ^
| | | |
|+1 : |+1 : |+1 : |+1 : 1 : []
^
|________
|
(:) -> map (+1) |
| ^
| |_________________
v |
scanl incState (map (+1) | ) (repeat 1)
last print, , .
0 : 0 : 0 : 0 : 0 : []
^ ^ ^ ^
| | | |
|+1 : |+1 : |+1 : |+1 : 1 : []
^ ^ ^ ^
| | | |
|+1 : |+1 : |+1 : |+1 : 2 : []
^
|_________________
|
scanl incState (map (+1) | ) (repeat 1)
, , , .. , . , , print . sum, .