diff options
Diffstat (limited to 'tests/closure/tflatmap.nim')
-rw-r--r-- | tests/closure/tflatmap.nim | 24 |
1 files changed, 0 insertions, 24 deletions
diff --git a/tests/closure/tflatmap.nim b/tests/closure/tflatmap.nim deleted file mode 100644 index 240756424..000000000 --- a/tests/closure/tflatmap.nim +++ /dev/null @@ -1,24 +0,0 @@ - -# bug #3995 - -import future - -type - RNG* = tuple[] - Rand*[A] = (RNG) -> (A, RNG) - -proc nextInt*(r: RNG): (int, RNG) = - (1, ()) - -proc flatMap[A,B](f: Rand[A], g: A -> Rand[B]): Rand[B] = - (rng: RNG) => ( - let (a, rng2) = f(rng); - let g1 = g(a); - g1(rng2) - ) - -proc map[A,B](s: Rand[A], f: A -> B): Rand[B] = - let g: A -> Rand[B] = (a: A) => ((rng: RNG) => (f(a), rng)) - flatMap(s, g) - -let f = nextInt.map(i => i - i mod 2) |