LINUX.ORG.RU

История изменений

Исправление korvin_, (текущая версия) :

проще:

с каналами и гоурутинами :).

А что в них непростого? Зачем вообще браться за Go, если они для тебя недостаточно просты?

я бы этот термин употребил в реализации с goto

Насколько я знаю, область видимости меток в Go ограничена процедурой (не знаю, как в Си), т.е. выпрыгнуть из текущей процедуры в другую нельзя, соответственно написать две взаимно-рекурсивные хвостовые процедуры с помощью goto будет невозможно, в отличие от.

Вообще можно конечно просто воспользоваться циклом с состояниями, но и в этом случае понадобится «внешняя» процедура а ля TCO, которая будет реализовывать переходы. Вызов горутины с передачей канала для возврата значения выглядит проще и ближе к хвостовому вызову, ИМХО.

Исходная версия korvin_, :

проще:

с каналами и гоурутинами :).

А что в них непростого? Зачем вообще браться за Go, если они для тебя недостаточно просты?

я бы этот термин употребил в реализации с goto

Насколько я знаю, область видимости меток в Go ограничена процедурой (не знаю, как в Си), т.е. выпрыгнуть из текущей процедуры в другую нельзя, соответственно написать две взаимно-рекурсивные хвостовые процедуры с помощью goto будет невозможно, в отличие от.