Re: Хвостовая рекурсия при ветвлении в ширь
От: samius Япония http://sams-tricks.blogspot.com
Дата: 13.12.19 06:09
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>buildTree возможно ли сделать рекурсих хвостовой? Мне почему-то кажется, что нет, но как это доказать не пойму.

Хвостовая рекурсия требует отсутствия операций над результатом рекурсивного вызова. Здесь же из результатов рекурсивного вызова требуется создать список и поместить их в Branch. Другими словами, хвостовая рекурсия работает с линейными структурами данных, с простыми цепочками.

Таким образом, построить tail-call не ленивое дерево от корня нельзя. Но можно собрать его через аккумулятор, для этого придется научиться подменять Leaf существующего дерева на Branch и начать с пустого дерева, обходя его каждый раз и перестраивая.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.