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
103
104
105
106
107
108
|
1:
$cppawk '
#include <array.h>
BEGIN {
$0 = "1 2 3 4"
fields_to_array(a)
for (i in a)
count++
print "count =", count
for (i = 1; i <= 4; i++)
printf "a[%s] = %s\n", i, a[i]
print "a[0] =", a[0]
}'
:
count = 5
a[1] = 1
a[2] = 2
a[3] = 3
a[4] = 4
a[0] = 1 2 3 4
--
2:
$cppawk '
#include <array.h>
BEGIN {
fields_to_array(a)
count = 0
for (i in a)
count++
print "count =", count
print "a[0] =", a[0]
}'
:
count = 1
a[0] =
--
3:
$cppawk '
#include <array.h>
BEGIN {
x = fun(cos)
}
:
ERR
--
4:
$cppawk '
#include <array.h>
BEGIN {
a[0] = "foo"
for (i = 1; i <= 10; i++)
a[i] = i
delete a[7]
array_to_fields(a)
print
}'
:
1 2 3 4 5 6
--
5:
$cppawk '
#include <array.h>
#include <cons.h>
#include <fun.h>
function even(x)
{
return x % 2 == 0
}
BEGIN {
group_by(fun(even), iota(1, 10), a)
print sexp(a[0]);
print sexp(a[1]);
}'
:
(1 3 5 7 9)
(2 4 6 8 10)
--
6:
$cppawk '
#include <array.h>
#include <cons.h>
#include <fun.h>
function even(x)
{
return x % 2 == 0
}
BEGIN {
group_by(fun(even), iota(1, 10), a)
maparray(fun(reverse), a, b)
print sexp(b[0])
print sexp(b[1])
}'
:
(9 7 5 3 1)
(10 8 6 4 2)
|