Как стать автором
Обновить

Комментарии 15

А я перестал использовать функциональные возможности Python. Код с этими элементами иногда становится быстрее, причем значительно и считаю это плюсом. Но в замен получаю иногда сложные в чтении код, возвращаясь через неделю иногда по 5-10 мин. туплю над функцией :( «чем проще тем лучше», если что-то усложняет, то это не для Python. Может и ошибаюсь, это сугубо мой маленький опыт )
По моему опыту, функциональный стиль уменьшает сложность кода (если без фанатизма). Проблема может быть либо в том, что вы ещё не начали думать функционально или просто код недостаточно сложный, чтобы применять такой «язык более высокого уровня».
В питоне функциональное программирование, кроме тривиальных случаев, выглядит достаточно громоздко, да и лямбды в возможностях ограничены… Но в случаях, когда оно применимо, действительно понимание действия кода при чтении обычно лучше (конечно, при условии что читающий знаком с парадигмой).
Очень не хватает Pattern Matching. Без него многие вещи получаются неочевидными с первого взгляда.

А потом я начинаю программировать на VBA и понимаю, что не всё так плохо.
Еще раз гуд.
Хорошо. Местами очень.
Библиотека интересная. Но больше похоже, что это просто набор удобных небольших функций (ну вроде re_find), которые к ФП относятся постольку-поскольку. Вот, скажем, функции join и merge. Они ведь модифицирует свой первый аргумент. Тогда в чем их функциональность?
join() и merge() не меняют свои аргументы, также как остальные функции в funcy
Проблема таких библиотек как funcy в том, что каждый горазд написать свою собственную. Наверное, многие обнаружили в примерах функции, которые не раз писали сами. По-хорошему, большинство этих функций должны быть в стандартной библиотеке, раскиданные по модулям functools, itertools и т. д.
Кстати, обращаюсь к Suor и всем: пожалуйста, называйте свои посты как можно более информативно. Экономьте время окружающих на понимание сути поста. Например, я бы назвал эту статью «Дополнительные функциональные инструменты для Python».
Хотите еще больше функциональщины? Попробуйте свою библиотеку вместе с вот этой github.com/kachayev/fn.py. Она добавит вам обобщение итераторов и генераторов без использования chain, новый выразительные lambda, 20+ новых рецептов для itertools не говоря уже о возможности удобно сделать tail call optimization.
Может, вы знаете готовую отлаженную библиотеку, позволяющую вместо
list(take(10, fib))
писать
fib.take(10).as_list()
?
take() возвращает список, так что list() не нужен, а второй вариант слишком не по-питоньи, я бы не стал так писать, чтобы не путать людей. Тут лучше в сторону ruby смотреть
ОМГ! Это именно то чего мне не хватало, список публичных методов и склеивание словарей.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации