aboutsummaryrefslogtreecommitdiff
path: root/spec/inputs/lists.yue
blob: 921cae0c9e099d39d79c6a52679f855a0857d0af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90

hi = [x*2 for _, x in ipairs{1,2,3,4}]

items = {1,2,3,4,5,6}

_ = [z for z in ipairs items when z > 4]

rad = [{a} for a in ipairs {
	 1,2,3,4,5,6,
} when good_number a]


_ = [z for z in items for j in list when z > 4]

require "util"

dump = (x) -> print util.dump x

range = (count) ->
	i = 0
	return coroutine.wrap ->
		while i < count
			coroutine.yield i
			i = i + 1

dump [x for x in range 10]
dump [{x, y} for x in range 5 when x > 2 for y in range 5]

things = [x + y for x in range 10 when x > 5 for y in range 10 when y > 7]

print x,y for x in ipairs{1,2,4} for y in ipairs{1,2,3} when x != 2

print "hello", x for x in items

_ = [x for x in x]
x = [x for x in x]

print x,y for x in ipairs{1,2,4} for y in ipairs{1,2,3} when x != 2

double = [x*2 for x in *items]

print x for x in *double

cut = [x for x in *items when x > 3]

hello = [x + y for x in *items for y in *items]

print z for z in *hello


-- slice
x = {1, 2, 3, 4, 5, 6, 7}
print y for y in *x[2,-5,2]
print y for y in *x[,3]
print y for y in *x[2,]
print y for y in *x[,,2]
print y for y in *x[2,,2]

a, b, c = 1, 5, 2
print y for y in *x[a,b,c]


normal = (hello) ->
	[x for x in yeah]


test = x 1,2,3,4,5
print thing for thing in *test

_ = -> a = b for row in *rows

with tb
	f [a] -- indexing
	f [a,] -- list with one element
	print v for v in *f[a,] -- table slicing in for-loop
	f [] -- empty list
	f[] = x -- table appending to f
	[a] = x -- assign to tb[a]
	[a,] = x -- list destructuring for x
	[] = x -- table appending to tb
	c = a in [1] -- check if a in tb[1]
	c = a in [1,] -- check if a == 1
	c = a in {1} -- check if a == 1
	c = a in {1,} -- check if a == 1

do
	[a, b] = hello
	[name = "nameless", job = "jobless"] = person

nil