\ Двухсвязный список. \ Можно добавлять как объект, так и значение c массивом \ Если добавляем объект или массив, то при уничтожении списка оные \ будут уничтожены REQUIRE Object ~day\joop\oop.f REQUIRE { lib\ext\locals.f pvar: p next @ -> n n IF p n node obj node R xt EXECUTE IF R> EXIT THEN R> REPEAT DROP ; : :free ['] FreeNode own :doEach own :free ; ;CLASS \ Итератор для списка - обход всех значений не через форт callback слово \ (можно :doEach класса List) pvar: it tt it :set BEGIN it :next IF :delete 0 ELSE -1 THEN UNTIL it :free tt