1 #### Standalone generator expression
2 var x = (i+1 for i in 1:3)
3 # This is NOT a list. TODO: This test is overspecified.
4 pp cell x | grep -o '<generator'
5 write status=$?
6 ## status: 2
7 ## STDOUT:
8 ## END
9
10
11
12 #### List comprehension (deferred)
13 shopt -s oil:all
14
15 var n = [i*2 for i in range(5)]
16 write --sep ' ' @n
17
18 # TODO: Test this
19 #var n = [i*2 for i,j in range(5)]
20
21 var even = [i*2 for i in range(5) if i % 2 === 0]
22 write --sep ' ' @even
23 ## status: 2
24 ## STDOUT:
25 ## END
26
27
28 #### Lambda not implemented
29 const f = |x| x + 1
30
31 ## status: 2
32 ## STDOUT:
33 ## END
34
35 #### Anonymous function expression not implemented (Tea)
36
37 # Note: this results in a expr.Lambda node. But it's not parsed.
38
39 const f = func(x) {
40 myfunc(x)
41 return x + 1
42 }
43
44 ## status: 2
45 ## STDOUT:
46 ## END