Size: a a a

2021 March 30

АГ

Александр Гранин... in ФП
Ну я уже много раз говорил, что считаю mtl как раз boiler plate. Люди почему-то смотрят на FM и видят бойлерплейт в интерпретаторах, когда их один раз написал и забыл. А вот boilerplate в бизнес-логике, который приходит с системами эффектов и FT, они не видят
источник

АГ

Александр Гранин... in ФП
(Ну и еще там была проблема квадратичного количества инстансов где-то для mtl)
источник

АГ

Александр Гранин... in ФП
Александр Гранин вышел из чата
источник

DS

Doge Shibu in ФП
Александр Гранин
Ну я уже много раз говорил, что считаю mtl как раз boiler plate. Люди почему-то смотрят на FM и видят бойлерплейт в интерпретаторах, когда их один раз написал и забыл. А вот boilerplate в бизнес-логике, который приходит с системами эффектов и FT, они не видят
Если что, то я без всякого негатива, не надо мои посты воспринимать как какие-то личные оскорбления.

Так бойлерплейт у фри монад будет появляться и в описании бизнес логики, потому что придется как-то выкручиваться в кейсах, когда надо совместить в одном месте два разных эффекта из разных библиотек или модулей.
Что через FT решается просто как нечего делать. (Как пример - см. скаловскую котовую экосистему)

Или я тут не прав и есть какое-то красивое и удобное решение этой проблемы и с фри монадами?
источник

DS

Doge Shibu in ФП
Или подразумевается, что фри монады мы используем строго для эффектов внутри одного обособленного приложения, а в библиотеках обходимся без них?
источник

АГ

Александр Гранин... in ФП
> когда надо совместить в одном месте два разных эффекта из разных библиотек или модулей.

Это системы эффектов и пытаются делать. Это проблема именно систем эффектов, просто некоторые из них используют фри монады для описания эффектов. Но сами фри монады тут ни при чем.

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

АГ

Александр Гранин... in ФП
Например, мои фри монадические фреймворки не требуют "совмещать эффекты", а уже предоставляют нужные подсистемы из коробки. Это то, что в мейнстриме давно делают, давно испробовано и удобно.
источник

АГ

Александр Гранин... in ФП
А если нужно какую-то новую подсистему добавлять, то
а) если это прямо критичная подсистема, почему она сразу не в фреймворке?
б) всегда можно добавить ее через "черную дыру" - метод runIO
источник

DS

Doge Shibu in ФП
Александр Гранин
Например, мои фри монадические фреймворки не требуют "совмещать эффекты", а уже предоставляют нужные подсистемы из коробки. Это то, что в мейнстриме давно делают, давно испробовано и удобно.
Если рассматривать фри монады именно в контексте использования внутри цельного фреймворка - то да, тут согласен, те проблемы о которых я говорил выше вообще какой-то роли не играют в таком случае.
источник

АГ

Александр Гранин... in ФП
Чот ищу-ищу, а исходного сообщения Doge нигде найти не могу ни в одном из чатов где он, как я знаю, обитает
источник

АГ

Александр Гранин... in ФП
Значит, есть еще один чат? @DogeShibu
источник

АГ

Александр Гранин... in ФП
А, точно, еще в шарповую флудилку не заглядывал
источник

AK

Aleksey Kislitsa in ФП
Что можно почитать про таглес файнел и фри монады людЯм кто только с монадами, моноидами и полугруппами разобрался?
"Хотелось бы в общих чертах понять, о чем интурист говорит"(С) И.В.Бунша
источник

АГ

Александр Гранин... in ФП
Кстати, раз уж на то пошло, то мне совершенно, абсолютно, совсем непонятно, как будет вести себя код на системе эффектов / ft / mtl в многопоточном конкурентном окружении. А именно такие почти все веб серверы. И если мы позволяем рандомному чуваку всовывать рандомный эффект в рандомное место бизнес-логики, это огромная дыра в дизайне. Мало ли что он туда насует. А в больших приложениях насовывают еще как.

А вот фреймворк по умолчанию будет сделан конкурентно, и не будет зоопарка эффектов в коде.
источник

АГ

Александр Гранин... in ФП
Aleksey Kislitsa
Что можно почитать про таглес файнел и фри монады людЯм кто только с монадами, моноидами и полугруппами разобрался?
"Хотелось бы в общих чертах понять, о чем интурист говорит"(С) И.В.Бунша
Ну ясно ж чо! Правильные хаскеллисты всегда к Олегу отправляют! Киселеву.

А раз я неправильный хаскеллист, то я не буду. Все что нужно, я о фри монадах рассказал в своих материалах. К сожалению, равного по полноте и консистентности источника про FT не существует (в Хаскеле, по крайней мере)
источник

АГ

Александр Гранин... in ФП
Но всегда можно почитать флудилку по F#, там за FT и FM как надо заяснят
источник

AK

Aleksey Kislitsa in ФП
Александр Гранин
Ну ясно ж чо! Правильные хаскеллисты всегда к Олегу отправляют! Киселеву.

А раз я неправильный хаскеллист, то я не буду. Все что нужно, я о фри монадах рассказал в своих материалах. К сожалению, равного по полноте и консистентности источника про FT не существует (в Хаскеле, по крайней мере)
А правильных ссылок на свои материалы нет?
источник

АГ

Александр Гранин... in ФП
Aleksey Kislitsa
А правильных ссылок на свои материалы нет?
Да есть, сейчас запощу
источник

AK

Aleksey Kislitsa in ФП
Александр Гранин
Но всегда можно почитать флудилку по F#, там за FT и FM как надо заяснят
Я после скала понва снова пить начал... Кефир... Прям боюсь во Фшарпнутую флудилку идти, как бы на ряженку не потянуло😺
источник

AG

Alex Gryzlov in ФП
Aleksey Kislitsa
Что можно почитать про таглес файнел и фри монады людЯм кто только с монадами, моноидами и полугруппами разобрался?
"Хотелось бы в общих чертах понять, о чем интурист говорит"(С) И.В.Бунша
про тф олег же много писал
источник