1.2.4
| Fact | { | ||||||
| 0 | = 1; | ||||||
| sN | = <MUL (sN) <Fact <SUB (sN) 1>>>; | ||||||
| } | |||||||
| Эта же функция с использованием интерпретатора Arex: | |||||||
| Fact | { | ||||||
| 0 | = 1; | ||||||
| sN | = <Arex sN '*' Fact(sN '-' 1)>; | ||||||
| } | |||||||
| Интерпретатор Arex: | |||||||
| Arex | { | ||||||
| sN | = | sN; | |||||
| eX '+' eY | = | <ADD (<Arex eX>) <Arex eY>>; | |||||
| eX '-' eY '-' eZ | = | <Arex (eX '-' eY) '-' eZ>; | |||||
| eX '-' eY | = | <SUB (<Arex eX>) <Arex eY>>; | |||||
| eX '*' eY | = | <MUL (<Arex eX>) <Arex eY>>; | |||||
| (eX) | = | <Arex eX>; | |||||
| sF (eX) | = | <Apply sF <Arex eX>>; | |||||
| } | |||||||
| Apply | { | ||||||
| Fact eN | = <Fact eN>; | ||||||
| ... | |||||||
| } | |||||||