scanl1 f [x1, x2, ...] == [x1, x1 `f` x2, ...]
>>> scanl1 (+) [1..4] [1,3,6,10]
>>> scanl1 (+) [] []
>>> scanl1 (-) [1..4] [1,-1,-4,-8]
>>> scanl1 (&&) [True, False, True, True] [True,False,False,False]
>>> scanl1 (||) [False, False, True, True] [False,False,True,True]
>>> take 10 (scanl1 (+) [1..]) [1,3,6,10,15,21,28,36,45,55]
>>> take 1 (scanl1 undefined ('a' : undefined)) "a"
scanl1 f [x1, x2, ...] == [x1, x1 `f` x2, ...]
>>> scanl1 (+) [1..4] [1,3,6,10] >>> scanl1 (+) [] [] >>> scanl1 (-) [1..4] [1,-1,-4,-8] >>> scanl1 (&&) [True, False, True, True] [True,False,False,False] >>> scanl1 (||) [False, False, True, True] [False,False,True,True] >>> scanl1 (+) [1..] * Hangs forever *
scanl f <x1,...,xn> = <y1,...,yn> where y1 = x1 yi = f y(i-1) xi
scanl f <x1,...,xn> = <y1,...,yn> where y1 = x1 yi = f y(i-1) xi
scanl f <x1,...,xn> = <y1,...,yn> where y1 = x1 yi = f y(i-1) xi
scanl f <x1,...,xn> = <y1,...,yn> where y1 = x1 yi = f y(i-1) xi