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
91
92
93
94
95
96
97
98
99
100
101
102
|
--------------------------------------------------------------------------------
-- filter
--------------------------------------------------------------------------------
dump(filter(function(x) return x % 3 == 0 end, range(10)))
--[[test
3
6
9
--test]]
dump(filter(function(x) return x % 3 == 0 end, range(0)))
--[[test
--test]]
dump(take(5, filter(function(i, x) return i % 3 == 0 end,
enumerate(duplicate('x')))))
--[[test
3 x
6 x
9 x
12 x
15 x
--test]]
function filter_fun(a, b, c)
if a % 16 == 0 then
return true
else
return false
end
end
function test3(a, b, c)
return a, c, b
end
n = 50
dump(filter(filter_fun, map(test3, zip(range(0, n, 1),
range(0, n, 2), range(0, n, 3)))))
--[[test
0 0 0
16 48 32
--test]]
print(remove_if == filter) -- an alias
--[[test
true
--test]]
--------------------------------------------------------------------------------
-- grep
--------------------------------------------------------------------------------
lines_to_grep = {
[[Lorem ipsum dolor sit amet, consectetur adipisicing elit, ]],
[[sed do eiusmod tempor incididunt ut labore et dolore magna ]],
[[aliqua. Ut enim ad minim veniam, quis nostrud exercitation ]],
[[ullamco laboris nisi ut aliquip ex ea commodo consequat.]],
[[Duis aute irure dolor in reprehenderit in voluptate velit ]],
[[esse cillum dolore eu fugiat nulla pariatur. Excepteur sint ]],
[[occaecat cupidatat non proident, sunt in culpa qui officia ]],
[[deserunt mollit anim id est laborum.]]
}
dump(grep("lab", lines_to_grep))
--[[test
sed do eiusmod tempor incididunt ut labore et dolore magna
ullamco laboris nisi ut aliquip ex ea commodo consequat.
deserunt mollit anim id est laborum.
--test]]
lines_to_grep = {
[[Emily]],
[[Chloe]],
[[Megan]],
[[Jessica]],
[[Emma]],
[[Sarah]],
[[Elizabeth]],
[[Sophie]],
[[Olivia]],
[[Lauren]]
}
dump(grep("^Em", lines_to_grep))
--[[test
Emily
Emma
--test]]
--------------------------------------------------------------------------------
-- partition
--------------------------------------------------------------------------------
dump(zip(partition(function(i, x) return i % 3 == 0 end, range(10))))
--[[test
3 1
6 2
9 4
--test]]
|