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 |