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
|