Obrigado.
A ideia de escrever o texto veio do teu sobre yield. Ia escrever que és corresponsável o que me lembrou de outro exemplo que deveria ter posto no texto. São as "co-expressions". Basicamente geradores sendo executados paralelamente.
procedure main()
write("DEC\tOCT\tHEX\tCHAR")
dec := create(0 to 255)
hex_dig := "0123456789ABCDEF"
hex := create(!hex_dig || !hex_dig)
oct := create((0 to 3) || (0 to 7) || (0 to 7))
char := create image(!&cset)
while write(@dec, "\t", @oct, "\t", @hex, "\t", @char)
end
como resultado:
DEC OCT HEX CHAR
0 000 00 "\x00"
1 001 01 "\x01"
...
8 010 08 "\b"
9 011 09 "\t"
10 012 0A "\n"
11 013 0B "\v"
12 014 0C "\f"
13 015 0D "\r"
...
31 037 1F "\x1f"
32 040 20 " "
33 041 21 "!"
34 042 22 "\""
35 043 23 "#"
36 044 24 "$"
...
45 055 2D "-"
46 056 2E "."
47 057 2F "/"
48 060 30 "0"
49 061 31 "1"
...
87 127 57 "W"
88 130 58 "X"
89 131 59 "Y"
90 132 5A "Z"
91 133 5B "["
92 134 5C "\\"
93 135 5D "]"
94 136 5E "^"
95 137 5F "_"
96 140 60 "`"
97 141 61 "a"
98 142 62 "b"
99 143 63 "c"
100 144 64 "d"
...
122 172 7A "z"
123 173 7B "{"
124 174 7C "|"
125 175 7D "}"
126 176 7E "~"
127 177 7F "\d"
128 200 80 "\x80"
...
253 375 FD "\xfd"
254 376 FE "\xfe"
255 377 FF "\xff"