Просмотров: 6554

Хиповые трансдюсеры на Python


Хочу немного потоптаться по близкой мне теме Python, чтобы одновременно погутарить про загадочные трансдюсеры (transducers).

Тем, кто до сих пор программирует на Delphi, вероятно будет интересно сначала хотя бы кратко услышать про то, что это (трансдюсеры) ваще такое. Если редьюсеры — это свёртки (fold) в Хаскеле, то трансдюсеры — логическое продолжение развития концепции редьюсеров, внезапно ставшей мега-популярной. Так на данный момент доступно изрядное количество портов трансдьюсеров на самые разнообразные языки: Python, Ruby, JavaScript, PHP, Java, C++, Lua, Erlang и другие.

Про всю эту муть применительно к Python — под катом.

Зачем и почему

Исторически ситуация развивалась таким образом: автор языка Clojure никак не может угомониться, в связи с чем придумал новую хиповую концепцию — трансдьюсеры. Ну, конечно же он их сразу впихнул в Clojure, хотя сама идея универсальна и вполне может использоваться в мирных целях быть воспроизведена в других языках.

Итак, кратко, зачем оно нужно:

Трансдьюсеры — это попытка переосмыслить операции над коллекциями, найти в них общую идею и принцип, научиться совмещать вместе несколько операций для их дальнейшего переиспользования.

Если вы ничего не поняли, выдаю под роспись эту именную ссылку со множеством примеров: Clojure — трансдьюсеры, редьюсеры и прочая муть.

Окей, теперь вы готовы к центральному видео поста: Трансдюсеры и Python (Максим Климишин)

И пока вы ещё здесь, на всякий случай дам ссылку на давний, но актуальный до сих пор пост Слово о трансдюсерах.

Там не без холивара, конечно, но я лучше промолчу:

А вообще, если говорить предельно честно, покопавшись в теме трансдюсеров и не смея почем зря баламутить вкусы читателей, выскажу свое мнение завуалировано, осторожно.

После трансдюсеров мне чего-то сразу вспомнился Кырр из Кин-дза-дза со своим транклюкатором — уж более прогрессивно-противоричивой пушки (концепции) найти сложно:

Хиповые трансдюсеры на Python Clojure
Я скажу всем, до чего довел планету этот фигляр ПЖ!

Лично я рекомендую не увлекаться этими сомнительными новшествами чрезмерно, всегда помня о золотом правиле программиста:

В догонку: Трансдьюсеры в JavaScript. Часть первая, часть вторая.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , ,
Эта запись опубликована: Вторник, 9 июня 2015 в рубрике Программирование.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз