Pisete "... některé formy rekurze lze nahradit lineárním kódem poměrně snadno, u dalších je to již těžší a ve speciálních případech (matematici by spíše řekli v obecných případech) je to dokonce nemožné.", co ale (pokial sa memymlim) nie je pravda.
Totiz kombinator pevneho bodu (Y) sa da vyjadrit takto:
DEFINE y == [dup cons [cons] cons [dup] dip dip i] dup cons [cons] cons [dup] dip dip i .a pomocou neho sa daju vyjadrit vsetky typy rekurzie. Na zasobniku ocakava citovany program, ktory je napisany tak, ze predpoklada sam seba na vrchu zasobnika. Kombinator Y ho upravi tak aby sam seba pridal na zasobnik a spustil sa. Teda
[program] y
je to iste ako
[[program] y] program
Napriklad funkcia pocitajuca fibonacciho cisla sa pomocou neho da zapisat takto:
DEFINE fib == [swap [0 =] [pop pop 0] [[1 =] [pop pop 1] [pred swap [dup pred] dip dup [swap] dip i [i] dip +] ifte] ifte] y .
Tymto zaroven odpovedam tomasovi z, ze linrec
nie je kombinator pevneho bodu