thedeemon: (office)
[personal profile] thedeemon
Неплохое и не без юмора совсем вводное введение в ФП для ОО программистов, верующих в дизайн паттерны:

Date: 2016-04-26 03:57 pm (UTC)
From: [identity profile] maxim.livejournal.com
Ты кто, заслуженный деятель Энтерпрайза?
Тайпклассы кстати втопку.
Edited Date: 2016-04-26 04:03 pm (UTC)

Date: 2016-04-26 04:41 pm (UTC)
From: [identity profile] binf.livejournal.com
== Тайпклассы кстати втопку.

а трэйты можно?

Date: 2016-04-26 04:45 pm (UTC)
From: [identity profile] kodt-rsdn.livejournal.com
Я скромный кодер на плюсах, одно время даже MS MVP был. А что?

Чем, кстати, тайпклассы не удружили?

Date: 2016-04-26 08:44 pm (UTC)
From: [identity profile] maxim.livejournal.com
Ну будем говорить, так что паттерны — это система типов базовой библиотеки.
В ООП языках они одними генераторами строятся, а в FP другой — полиномиальный базис.
Если кратко то есть всего две метатипа полиномиальных функторов: data и record или union и struct или деревья и их слагаемые с именоваными полями. И на этом всем уже растет FP и OOП, так как классы, структуры, интерфейсы и сигнатуры из ML — это надстройка над слагаемыми, типы классов — это тоже надстройка над рекордами, делегирование управления и уровни индирекшина, как говорят в ООП.

В некоторых языках нет слова data, например в таких как Erlang, но как мы знаем мы можем дату имитировать через кодату (это все виды кодировок, а кодировки как мы знаем всегда находятся в "дне" лямбда куба, нетипизированном исчислении) поэтому в эрланге мы свободно имитируем data (если нам нада), в основном работая с record как с базовым типом.

Лисперы убедились в свое время, что всего нужно 12 уровней индирекшина, чтобы писать софт. А сейчас тема такая, что оказывается что тректрейсы в продакшине могут ограничиваться до 5 или 4 уровней (как у меня) — и все это благодаря именно "функциональному паттерну" "композишин" и "абстракция" (как синоним функции). Конечно в ФП дофига паттернов, но так получилось, что эти паттерны все записаны в учебниках по алгебре. Так что ФП программсты просто перепечатывают запылившиеся книги :-)

Т.е. суть действительно в диком и чрезмерном упрощении. Как только базис твоих примитивов или форм языка сокращается до нужного минимум — все остальное отбрасывается или является украшениями этих двух или трех или пяти простых сущностей.
Edited Date: 2016-04-26 08:53 pm (UTC)

Profile

thedeemon: (Default)
Dmitry Popov

December 2025

S M T W T F S
 12 3456
789101112 13
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 26th, 2026 12:21 pm
Powered by Dreamwidth Studios