Комментарии 6
Отсутствие оптимизации хвостовой рекурсии в Go расстроило. Лично для меня это один из главных минусов Python.
Почему рекурсия зло можно почитать здесь: https://habrahabr.ru/post/256351/
Почему рекурсия зло можно почитать здесь: https://habrahabr.ru/post/256351/
Притом в Lua (откуда Go взял немало особенностей синтаксиса, судя по всему) хвостовая рекурсия оптимизируется.
Очень странная статья по ссылке.
Половину примеров можно привести к хвостовой рекурсии, которую компилятор либо оптимизирует, либо вы ею не будете пользоваться, особенно если вы знаете что такое хвостовая рекурсия.
Вторую же половину читабильнее, красивее и проще чем не хвостовой рекурсией описать сложно.
Половину примеров можно привести к хвостовой рекурсии, которую компилятор либо оптимизирует, либо вы ею не будете пользоваться, особенно если вы знаете что такое хвостовая рекурсия.
Вторую же половину читабильнее, красивее и проще чем не хвостовой рекурсией описать сложно.
Даже богом забытый Nim на фоне Go функциональнее смотрится.
Для нормального функционального программирования необходимы (но не достаточны!) либо полноценный параметрический полиморфизм (т.е. дженерики; например, это языки ML-семейства), либо полная динамичность (лиспы, эрланг). Go не имеет ни того, ни другого, и поэтому максимум, что про него можно сказать, это то, что в нём есть функциональные элементы.
Но это, безусловно, не значит, что язык плохой — просто он задумывался для другого, и его основные практики и подходы тоже другие.
Но это, безусловно, не значит, что язык плохой — просто он задумывался для другого, и его основные практики и подходы тоже другие.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
О функциональности Go