Chybicka se vloudila
Jaroslav Snajdr
snajdr5 at students.zcu.cz
Mon Sep 28 09:26:07 CEST 1998
On Sun, 27 Sep 1998, Martin Kucera wrote:
> Ja jsem se take domnival, ze je to takhle, ale kdyz jsem si mailoval
> s p. Koubou, napsal mi toto:
> "S nekonecnou smyckou mate pravdu, ale \def\x{\x}\x je nekonecna
> rekurze. TeX musi ulozit stav (zmeny fontu a pod. se nepromitnou
> dale)."
Zadny stav se ukladat nemusi, protoze se nikde nevstupuje do skupiny --
vse probiha v globalnim kontextu. Rekurze to sice je, ale zrovna tohle je
jeji specialni pripad, ktery Knuth vymyslel, aby se daly programovat
smycky. Token \x je posledni v expanzi makra \x, proto se muze uvolnit
veskera pamet, kterou definice zabirala v input stacku a zacit novy krok
rekurze s "cistym stitem". Kdybychom meli neco jako
\def\x{\x a}\x
musi si TeX nekde (v input stacku) schovat to zaverecne acko a input stack
se postupne zaplni.
Makro
\def\x{a\x}\x
na svou rekurzi nema zadnou rezii, ale skonci to tak, ze se zaplni main
memory temi acky -- odstavec bude tak dlouhy, ze uz se nikam nevejde.
-jns
,-------------------------------------------------------------------------.
| Jaroslav Snajdr http://home.zcu.cz/~snajdr5 |
| snajdr5 at students.zcu.cz (MIME welcomed) FIDO: 2:423/33.15 |
`-------------------------------------------------------------------------'
More information about the csTeX
mailing list