| 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
|