Size: a a a

2021 May 07

ДБ

Дмитрий Башинский... in F# Chat
Ну я сам не експерт, но я понял фри монаду так
Вместо того чтоб делать еффекты и тд ты описываешь структуру данных которая их описывает, на рекурсивна
Своими функциями ты лишь собираешь эту структуру, а потом на самом верху выполняешь интепретатором который ты пишешь
источник

ДБ

Дмитрий Башинский... in F# Chat
источник

nn

noname nobody in F# Chat
это какой-то трэш, если честно. кажется тут предлагается делать жесткое решение под конкретный случай.
источник

nn

noname nobody in F# Chat
судя по диаграмме код будет очень сложный
источник

ДБ

Дмитрий Башинский... in F# Chat
Да, это треш ;)
источник

VS

Vladimir Shchur in F# Chat
это  как раз плата за универсальность решения - не хочешь платить, оборачивай свой функции в функцию log и живи спокойно)
источник

ДБ

Дмитрий Башинский... in F# Chat
Ну там к примеру будет log функция которая
string -> IO

Которая всесто писания в лог сделает к примеру такое

Log(message, nextFunc)
источник

ДБ

Дмитрий Башинский... in F# Chat
А интерпретатор это разворачивает и подставляет тут либо реальный логер либо мок в тестах:)
источник

ДБ

Дмитрий Башинский... in F# Chat
но лучше чистый доменный код а связь с сайд еффектами где то в CommandHandler
источник

VS

Vasily Shapenko in F# Chat
Чем лучше?
источник

ДБ

Дмитрий Башинский... in F# Chat
тем что так проще и не нужно вникать во free monad
источник

VK

Vladislav Khapin in F# Chat
-> No
источник

AH

Ayrat Hudaygulov in F# Chat
Не нужны фри монады
источник

VS

Vasily Shapenko in F# Chat
У @BashkaMen в голове какое-то смешение понятий
источник

ДБ

Дмитрий Башинский... in F# Chat
Я просто предложил вариант как чисто делать то что он хочет
источник

VS

Vasily Shapenko in F# Chat
Следование идеологическим убеждениям при написании кода скорее всего вредно
источник

EB

Eyes in the Box in F# Chat
а что мешает спокойно делать чистый домен, а всю IO дрянь просто отдельно?
источник

E

Elizabeth in F# Chat
как можно вызвать эту конверсию из F#? Просто вызывать op_Explicit не получается ибо там много перегрузок и пишет что нет конвертации из BigDecimal в BigInteger

https://gist.github.com/nberardi/2667136#file-bigdecimal-cs-L233
источник

VS

Vasily Shapenko in F# Chat
op_Explicit  же
источник

E

Elizabeth in F# Chat
точнее Explicit, да
источник