Дима
У тебя под кодом триллион слоёв вплоть до виртуальный машины интела которая прикидывается x86
Oleg
И ноды
Дима
О каком нативном коде тут может идти речь
Sergey
Oleg
Вообще математика это про одно мгновение, в которое остановили время и получили текущее одно единственное состояние, которое можно описать формулой. ФП любит такое.
Остальной нормальный мир программирования считает что время бежит постоянно и каждый шажок, каждый тик - это изменение мира вокруг, а программа учитывет это и меняет мир в том числе. Это близко к реальности. Но не так абстрактно как в математике и имеет те же пробелемы что иреальный мир.
Oleg
Ну и конечно переиспользование памяти и тп
Дима
Ты почти что изобрёл обращение с сайд-эффектами
Дима
Ты не только можешь описать абстрактный мир, ты вполне можешь описывать и управлять любыми побочными эффектами — проявлениями реального мира
Oleg
И тем не менее в ФП нет понятия состояния
Oleg
Ибо оно одно
Дима
Лол
Дима
Не смеши)
Oleg
У нас какие-то разные ФП? Ты по ночам тихо кодишь в ООП?
Sergey
Sergey
да уж. У тебя мышление сильно отличается от обывателей здесь )))
Дима
Я уж не говорю про то, что есть и обычный мутабельный стейт в качестве сайд-эффекта
Oleg
Ну не, это не чистый код уже
Дима
Чистый
Vitaly
Maybe('это не состояние')
Дима
Oleg
Есть киберкрепости - такие сервера, что особо защищены от атак
Oleg
Пора строить киберхрамы
Oleg
А на самом деле ФП имеет право на жизнь конечно
Oleg
В нем есть некоторые вещи что лечат некоторые ошибки в некотором коде
Oleg
Это помимо упрощения некоторых задач
Oleg
Достаточно сильного упрощения
Oleg
Но так или иначе чисто ФП выглядит неоднозначно
GG
Даже не представляю, как поддерживать код на фп)
Oleg
Весь ФП можно выразить через ООП
Дима
Дима
Как ты выразишь в ооп Kind?
(* -> *) -> * -> *
Дима
Это то, что принимает один тайп класс и возвращает другой
Дима
Что ещё даже не является типом, а его обобщением
Vitaly
Ахахах
это как выразить атомы через яблоки
Дима
Ога)
Sergey
Vitaly
в разы
Oleg
в разы
...особенно когда ты фанат ФП, да
Vitaly
я не фанат, просто оно само так получилось
Oleg
Oleg
Это пацаны на ФП писали, а я просто рядом кодил
Vitaly
не стоит восприниматьт фп как вещь в себе, просто абстракции там постройнее
Дима
Просто есть такая штука, теория категорий — которая позволяет описывать не то что логику очередного банка, а целый ряд глубоких математических абстракций, от попытки осознания которых у меня в голове деление на ноль происходит)
Дима
Фактически это теория построения любых абстракций в чистом виде
Vitaly
Через годик будет тут срач про coq, так вижу
Дима
😄😄\
Oleg
Так это - объект может описывать любую абстракцию ибо любая абстракция это некий объект, в том числе даже если это процесс или действие
Дима
Теперь введём категорию твоих объектов
Vitaly
и морфизмы
Дима
Само собой 😄
Vitaly
побольше морфизмов
Oleg
Oleg
Диалог у нас правда тоже высокоабстрактный получается
Oleg
Дима
Да
Oleg
Категорию категорий
Дима
Начинаешь понимать
Oleg
И категорию категорий категорий
Vitaly
тайпклассы
Oleg
Ну это и так понятно то
Дима
cat Cat Cat :: Cat -> Cat
Дима
Прости хоспади
Oleg
ФП это когда вместо того чтобы решать проблемы человечества решаешь категорию проблем категории проблем
Sergey
Oleg
На самом деле коненчо на решение таких проблем есть свой спрос
Oleg
Но всё это узкая такая специализация
GG
Vitaly
да ну просто полезно знать основные фичи фп, даже если пишешь на js.
циклы - это списки, любая операция со списком - фолд, мап
Всего пару лайфхаков - и твой код становиться меньше, читабельнее и легче отлаживать