List var y, z: list;
|
function rev (x: list) : List var y, z: list; begin A: if null (x) Then rev := y; Z := cdr (x); if atom (z) then goto B; z := rev (z); B: y := cons (z, y); x := cdr (x); goto A end; |
| Пример 8.1. Функция REV, обращающая список и все подсписки, столь же естественно пишется с помощью рекурсивного Prog-выражения. |
| Закрыть окно |
| (setq x 'y) (set x 'NEW) ( print x) (print y) ; Напечатается Y и NEW. |
| Пример 8.2. |
| Закрыть окно |