Não gosto de postar isso, mas eu preciso agradecer pelo conteúdo (relativamente) original, algo que não encontraríamos de outra forma. É sempre bom ver algo diferente e ajuda-nos pensar melhor mesmo usando outras tecnologias.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).

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"