Тема: Безпечні потенц. Нескінчені псевдо-Рекурсії. Теоретичне розсудження.
Тортурований своїм безсонням, мене знайшла і захопила ця ідея, (ймовірно через ослаблену свідомість).
-що можливо імплементувати потенційно безкінечну (псевдо-)рекурсивну функцію в С++.
Проблема:
0. Пам'ять є ресурсом, не нескінченним, - значить рекурсії довго не тривати. Але розгалужені рекурсії можуть бути елегантним і зручним рішенням.
Вірогідне рішення/підхід:
0. "Забстрактувати" функцію як "кадр даних" - представити об'єкт який утримуватиме всі її значення(перемінні), і як наслідок можливі її стани. Теж саме до "позиції" потоку її виконання на випадок коли вона мусить мати чисельні гілки умовних переходів.
1. Провадити об'єкту що утримуватиме "кадри функцій" ряд методів для генерації і запису ідентифікатору(нумерування просто кажучи) функції що звертатиметься для "самозбереження" до нього і якщо вона утримує данні що вже повторювалися - або вся цілком є еквівалентна тій що вже колись виконувалась, - то ці данні або її саму очевидно - можна заштовхати в хеш-мапу. (звідси потенційно безкінечне виконання, коли багато кадрів - генерованих є рівнозначними.)
2. При власне описанні функції натикати досточорта (технічний термін) кодованих goto і міток, на кожен крок. Повертатись з їх допомогою, через якийсь посередник ймовірно, на початок(чи назад при згортанні на бажану позицію посередником) поки задачу не розв'язано (або не закінчилась пам'ять). Вуаля.