]> gerrit.simantics Code Review - simantics/platform.git/blob - tests/org.simantics.scl.compiler.tests/src/org/simantics/scl/compiler/tests/scl/Scanl.scl
Merge commit '5da68e7'
[simantics/platform.git] / tests / org.simantics.scl.compiler.tests / src / org / simantics / scl / compiler / tests / scl / Scanl.scl
1 import "Prelude" hiding (scanl)\r
2 \r
3 scanl :: (b -> a -> <e> b) -> b -> [a] -> <e> [b]\r
4 scanl f initial l = build (loop initial 0)\r
5   where\r
6     len = length l\r
7     loop cur i accum cons = let nl = cons accum cur\r
8                             in if i==len\r
9                                then nl\r
10                                else loop (f cur (l!i)) (i+1) nl cons\r
11                                \r
12 main = scanl (+) 0 [1,2,3]\r
13 --\r
14 [0, 1, 3, 6]