TGViewer
Лаборатория Математики и Программирования Сергея Бобровского Лаборатория Математики и Программирования Сергея Бобровского @lambda_brain · 1.41K subscribers
Post #1629 1.05K
В пояснение вчерашнего опроса ↑ ↑ ↑

Почему именно ФП -- подмножество ООП?
(берём чисто прикладной уровень понимания)

1. Функции в ФП -- "объекты" (в смысле сущности) первого класса. Они могут быть переданы другим функциям как аргументы, могут быть возвращены из других функций как значения, могут храниться в переменных и т.п.
Поэтому в ООП мы можем представить функцию из ФП как обычный объект с единственным методом -- самой собой.

2. Алгебраические типы данных из ФП можно реализовать в ООП как "запечатанные" (sealed) классы.

3. Product тип (произведение типов) -- это просто обычный класс.
Sum тип (сумма типов) -- это абстрактный класс, каждый из наследников которого -- один из вариантов sum типа.
Таким образом мы можем комбинировать sum и product типы, создавая иерархии классов, где каждый производный класс представляет конкретный вариант sum типа, а поля класса представляют product типы. А чтобы такая иерархия оставалась "алгебраической", производные классы мы просто запечатываем.

=

В принципе, обратное тоже возможно, но в мэйнстриме будет конечно неприменимо.
Во-первых вообще везде и тотально придётся очень интенсивно использовать HOF (map, filter, reduce, apply, compose...), что подразумевает качественно иной стиль мышления (к счастью современное языки в этом направлении развиваются неплохо).
Во-вторых, инкапсуляцию реализуем через замыкания, наследование через композицию, полиморфизм через дженерики, а абстракции через интерфейсы.

На мой взгляд, стратегически правильный подход -- правильно сбалансированная комбинация этих двух подходов. засада только в том ,что такой баланс не определить без знания cs :)
  • 🤔 37
  • ❤ 14
  • 👍 9
  • ✍ 4
  • 😁 1
More from @lambda_brain
  1. Oct 5, 2026Мнения экспертов по индустрии разработки игр в целом можете при желании найти сами на ютуб…
  2. Oct 5, 2026Просили пояснить за (M)PF геймдев ↑ Сложно сегодня придумать более сложное бизнес-направле…
  3. Oct 5, 2026. Облако драгоценностей за неделю. скоро зима (с) Приватный клуб. В жизни любого проекта н…
  4. Oct 1, 2026Ребята спрашивают, ну ок, моё скромное мнение. у вас где-нибудь можно прочитать ваше мнени…
  5. Sep 30, 2026Ладно, вот вам база, почему так трудно переучиваться с императивного/объектного стиля коди…
  6. Sep 30, 2026Ну, с Днём Рунета! Многие годы Рунет был эталонным примером свободы, а сегодня превратился…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →