added titer7 test
This commit is contained in:
parent
1dc2c780f1
commit
a6d5707faf
1 changed files with 57 additions and 0 deletions
57
tests/run/titer7.nim
Normal file
57
tests/run/titer7.nim
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
discard """
|
||||||
|
output: '''--- evens
|
||||||
|
2
|
||||||
|
4
|
||||||
|
6
|
||||||
|
8
|
||||||
|
--- squares
|
||||||
|
1
|
||||||
|
4
|
||||||
|
9
|
||||||
|
16
|
||||||
|
25
|
||||||
|
36
|
||||||
|
49
|
||||||
|
64
|
||||||
|
81
|
||||||
|
--- squares of evens, only
|
||||||
|
4
|
||||||
|
16
|
||||||
|
36
|
||||||
|
64'''
|
||||||
|
"""
|
||||||
|
|
||||||
|
iterator `/`[T](sequence: seq[T],
|
||||||
|
filter: proc(e:T):bool {.closure.}) : T =
|
||||||
|
for element in sequence:
|
||||||
|
if (filter(element)):
|
||||||
|
yield element
|
||||||
|
|
||||||
|
iterator `>>`[I,O](sequence: seq[I],
|
||||||
|
map: proc(e:I):O {.closure.}) : O =
|
||||||
|
for element in sequence:
|
||||||
|
yield map(element)
|
||||||
|
|
||||||
|
iterator `/>>`[I,O](sequence: seq[I],
|
||||||
|
filtermap:tuple[
|
||||||
|
f:proc(e:I):bool {.closure.},
|
||||||
|
m:proc(e:I):O {.closure.}]) : O =
|
||||||
|
for element in sequence:
|
||||||
|
if (filtermap.f(element)):
|
||||||
|
yield filtermap.m(element)
|
||||||
|
|
||||||
|
proc isEven(x:int): bool {.closure.} = result =
|
||||||
|
(x and 1) == 0
|
||||||
|
|
||||||
|
proc square(x:int): int {.closure.} = result =
|
||||||
|
x * x
|
||||||
|
|
||||||
|
let list = @[1,2,3,4,5,6,7,8,9]
|
||||||
|
|
||||||
|
echo ("--- evens")
|
||||||
|
for item in list / isEven : echo(item)
|
||||||
|
echo ("--- squares")
|
||||||
|
for item in list >> square : echo(item)
|
||||||
|
echo ("--- squares of evens, only")
|
||||||
|
# next line doesn't compile. Generic types are not inferred
|
||||||
|
for item in list />> (isEven, square) : echo(item)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue