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