| 1 | 
  
    ## our_shell: ysh
   | 
  | 2 | 
  
    
   | 
  | 3 | 
  
    
   | 
  | 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 | 
  
    
   | 
  | 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 | 
  
    
   | 
  | 31 | 
  
    const f = |x| x + 1
   | 
  | 32 | 
  
    
   | 
  | 33 | 
  
    ## status: 2
   | 
  | 34 | 
  
    ## STDOUT:
   | 
  | 35 | 
  
    ## END
   | 
  | 36 | 
  
    
   | 
  | 37 | 
  
    
   | 
  | 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
   |