Size: a a a

2021 June 23

LO

Leonid 🦇 Onokhov in Haskell
у меня один слой только
источник

K

Kir in Haskell
Three-layer cake подхода
источник

YS

Yan Shkurinskiy in Haskell
(это была шутка :( )
источник

K

Kir in Haskell
Есть системы эффектов, которые позволяют эффекты подключать и отключать
источник

K

Kir in Haskell
Ааа
источник

YS

Yan Shkurinskiy in Haskell
На фримонадах?
источник

K

Kir in Haskell
Проблема в том, что вместо "взять и продолжить идею, сделав что-нибудь extendable" он предлагает писать всё руками. Например, в функторе, передаваемом во Free у него надо руками сделать CPS везде. А можно было просто завернуть в Codensity на этапе построения выражения
источник

K

Kir in Haskell
Можно и так сказать. На самом деле, есть джва три вида систем эффектов, из того, что я знаю:
1) Алгебраические - нет local и других функций с негативным вхождением
2) не-алгебраические - всё это есть, и в ядре там фримонады, но нельзя сделать Eff [HasReader x, ...] a -> Eff [...] (Reader a)
3) polysemy/fused-effects - всё есть, в ядре подобие фримонады (обработанной напильником freer, точнее), всё можно, но медленнее чем mtl в разы
источник

K

Kir in Haskell
Я делал (2)
источник

YS

Yan Shkurinskiy in Haskell
Интересно
источник

K

Kir in Haskell
https://github.com/Heimdell/dual-effects/blob/master/src/Core.hs#L62-L81 - не знаю, насколько это фримонада
источник

YS

Yan Shkurinskiy in Haskell
Я кстати слышал что fused effects достаточно быстрые
источник

YS

Yan Shkurinskiy in Haskell
Я правда ничего кроме тайпклассов не использовал)
источник

K

Kir in Haskell
Всё сложно. Соавтор-допиливатель fused-effects объясняет, в чём специфика бенчмарков

https://www.youtube.com/watch?v=0jI-AlWEwYI
источник

YS

Yan Shkurinskiy in Haskell
Там же суть была в специализации?
источник

K

Kir in Haskell
Ага
источник

AF

Alexey Fedotov in Haskell
Если это паттерн, который применяется повсеместно, то это может быть вполне осмысленно
источник

K

Kir in Haskell
Можно не делать этот паттерн, а завернуть в Codensity, результат будет тот же
источник

K

Kir in Haskell
И это то, за что я люблю хаскелль: очень паттерны можно механизировать.
источник

AF

Alexey Fedotov in Haskell
Я вот давно думаю, как бы повыковыривать у джуниоров c и v. Уж если ты копируешь, хотя бы копируй рядом и перепечатывай с образца, может быть, что-то поймёшь хоть. Хотя копирование и удобнее. А шаблонный, одинаковый код хотя и нарушает DRY, но зато его очень легко писать, читать и поддерживать.
источник