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