1 # These are really lists
2
3 #### basic array
4 var x = %(1 2 3)
5 write len=$len(x)
6 ## STDOUT:
7 len=3
8 ## END
9
10 #### string array with command sub, varsub, etc.
11 shopt -s oil:all
12
13 var x = 1
14 var a = %($x $(write hi) 'sq' "dq $x")
15 write len=$len(a)
16 write @a
17 ## STDOUT:
18 len=4
19 1
20 hi
21 sq
22 dq 1
23 ## END
24
25 #### Empty arrays and using Array[T]
26 shopt -s oil:all
27
28 var b = Array[Bool]()
29 var i = Array[Int]()
30
31 #var f = Array[Float]()
32 write len=$len(b)
33 write len=$len(i)
34
35 var b2 = Array[Bool]([true, false])
36 write @b2
37
38 #write len=$len(f)
39 ## STDOUT:
40 len=0
41 len=0
42 True
43 False
44 ## END
45
46
47 #### Arrays from generator expressions
48 shopt -s oil:all
49
50 var b = Array[Bool](true for _ in 1:3)
51
52 var i = Array[Int](j+1 for j in 1:3)
53 #var f = Array[Float](i * 2.5 for i in 1:3)
54 write @b
55 write @i
56 #write @f
57 ## STDOUT:
58 True
59 True
60 2
61 3
62 ## END
63
64 #### Standalone generator expression
65 var x = (i+1 for i in 1:3)
66 # This is NOT a list. TODO: This test is overspecified.
67 pp cell x | grep -o '<generator'
68 write status=$?
69 ## STDOUT:
70 <generator
71 status=0
72 ## END
73
74 #### typeof should show the type
75 var b = %(true)
76 # pp cell should show the type of the object?
77 pp cell b
78 #typeof b
79
80 var empty = %()
81 pp cell empty
82
83 ## STDOUT:
84 Array[Bool]
85 Array[???] # what should this be?
86 ## END