?

Log in

No account? Create an account
Previous Entry Share Next Entry
photo25

как научиться ФП (repost)

Оригинал взят у bvlb в как научиться ФП
Очень просто: запрещаешь себе менять переменные. Сам с собой договорился: менять переменные больше не буду. Никогда. На характер. Функции в результате становятся чистыми, циклов больше нет, приходится юзать мапы, фолды и прочие рекурсии. Объекты перестают быть гм.. аккумуляторами и аренами и начинают под действиями функций переходить в другие объекты, подозрительно напоминая всякие там алгебраические структуры над разными множествами. Дальше архитектура становится пиздецом и приходится лезть в гугл, смотреть разные либы и придумывать как композировать функции и вылезать из пиздеца. Мозг кипит, но переменных становится все меньше и баги как-то становятся пореже.

Для этого не нужен ни хаскел, ни эрланг, ни скала, вообще никакой "настоящий" функциональный язык для этого не нужен. Я это практикую сейчас на джаваскрипте, например. И на питоне примериваюсь, хотя боюсь получится гораздо страхолюднее. Хорошо бы конечно иметь в компиляторе/виртуальной машине элементарный флажок, который будет форсить это ограничение, но в качестве испытания духа можно и без.


  • 1
grey_kristy July 18th, 2015
Все это правильно и хорошо, но если язык не умеет TCO, то без циклов крайне проблематично обойтись. Аналогично с иммутабельностью - если нет встроенной поддержки можно попасть на дикий оверхед по памяти

  • 1