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
|
#SRC: JCON
# test image(), serial(), *x, and explicit conversion functions
record point(x,y)
record circle(x, y, r)
procedure main(args)
local c1, c2, c3, c4, s
dump()
dump(047)
dump(3.14159)
dump('7121')
dump("asparagus")
dump(main)
dump(write)
dump(args)
dump([])
dump([1,2,3,4,5])
dump(set())
dump(insert(insert(insert(set(),1),2),3))
dump(table())
dump(insert(table(), 3, 4))
dump(point)
dump(circle)
dump(point(0))
dump(circle(0))
dump(point(1,2))
dump(point(3,4,5))
dump(circle(6,7))
dump(circle(4,5,6))
c1 := create 10 to 19
c2 := create 20 to 29
c3 := create 30 to 39
every 1 to 7 do @c2 & @c3
c4 := ^c3
every 1 to 7 do @c2 & @c3
dump(c1)
dump(c2)
dump(c3)
dump(c4)
write()
write(" x integer(x) real(x) numeric(x)",
" string(x) cset(x)")
every convert(0 | 0.0 | "0" | '0' | 7 | 7.315 | "7.315" | '7.315' |
"25e-2" | "25e-1" | " 4e+3 " | " 3.8e3 " |
"" | " " | " -3 " | " 9 " | " +77" | " 4.7 ")
s := &cset[1:140] || &cset[250:256]
write()
write(image(s))
write()
write(image(cset(s)))
write()
end
procedure dump(x)
local n
if n := serial(x) then
writes("#", n, " ", "*", *x)
else if type(x) === ("string" | "cset" | "real" | "integer") then
writes(" *", *x)
write("\t", type(x), " : ", image(x))
return
end
procedure convert(x)
write(pad(x), pad(integer(x) | &null), pad(real(x) | &null),
pad(numeric(x) | &null), pad(string(x) | &null), pad(cset(x) | &null))
return
end
procedure pad(x)
return right(image(\x) | "---", 13)
end
|