История изменений
Исправление korvin_, (текущая версия) :
проще:
с каналами и гоурутинами :).
А что в них непростого? Зачем вообще браться за Go, если они для тебя недостаточно просты?
я бы этот термин употребил в реализации с goto
Насколько я знаю, область видимости меток в Go ограничена процедурой (не знаю, как в Си), т.е. выпрыгнуть из текущей процедуры в другую нельзя, соответственно написать две взаимно-рекурсивные хвостовые процедуры с помощью goto будет невозможно, в отличие от.
Вообще можно конечно просто воспользоваться циклом с состояниями, но и в этом случае понадобится «внешняя» процедура а ля TCO, которая будет реализовывать переходы. Вызов горутины с передачей канала для возврата значения выглядит проще и ближе к хвостовому вызову, ИМХО.
Исходная версия korvin_, :
проще:
с каналами и гоурутинами :).
А что в них непростого? Зачем вообще браться за Go, если они для тебя недостаточно просты?
я бы этот термин употребил в реализации с goto
Насколько я знаю, область видимости меток в Go ограничена процедурой (не знаю, как в Си), т.е. выпрыгнуть из текущей процедуры в другую нельзя, соответственно написать две взаимно-рекурсивные хвостовые процедуры с помощью goto будет невозможно, в отличие от.