Size: a a a

2020 July 02

АГ

Александр Гранин... in Haskell
Тут скорость надо поставить на 1х и послушать внимательней
источник

Oℕ

Oleg ℕizhnik in Haskell
да, там немного неудачно со временем вышло
источник

АГ

Александр Гранин... in Haskell
Так, тут надо цитировать
источник

АГ

Александр Гранин... in Haskell
"В конце 2018 года его [Tagless Final] таки убили. Произошло массовое разочарование, и большое количество людей решили, что TF вообще совсем-совсем в реальном проде не нужен. Когда люди заглянули в реальные библиотеки, которые должны были им помочь работать с TF, оказалось, что самые-самые низкоуровневые, базовые абстракции, оказывается, благославляют написание грязного кода. Результат [такого кода] - это чистая функция, но вся идея Tagless Final моментально пропадает, потому что никакого ограничения ваших действий здесь не происходит. Пользоваться этими абстракциями для кода в стиле TF невозможно."
( @odomontois  )
источник

АХ

Алексей Худяков... in Haskell
В скале
источник

АГ

Александр Гранин... in Haskell
Я думаю, это универсально
источник

YS

Yan Shkurinskiy in Haskell
А что это за видео?
источник

АГ

Александр Гранин... in Haskell
Yan Shkurinskiy
А что это за видео?
Доклад Олега на JPoint "Путь из ФП в ООП"
источник

АГ

Александр Гранин... in Haskell
Далее Олег пиарит свой tofu, не буду смотреть
источник

Oℕ

Oleg ℕizhnik in Haskell
Да, тут речь про scala.
Примерно то же можно переформулировать на haskell в форме "если в вашей функции есть constraint MonadIO" никакого отношения к tagless final даже в процедурной интерпретации она не имеет
источник

Oℕ

Oleg ℕizhnik in Haskell
Ну только если не является частью интерпретатора, конечно
источник

MK

Maxim Koltsov in Haskell
поэтому у меня без монадио
источник

Oℕ

Oleg ℕizhnik in Haskell
Мне кажется, это в принципе очевидно для хаскелистов
источник

MK

Maxim Koltsov in Haskell
а вот у Саши, кстати, в HFM есть люк в ио
источник

Oℕ

Oleg ℕizhnik in Haskell
Но для скалистов почему-то не очень
источник

YS

Yan Shkurinskiy in Haskell
Даже мне очевидно(
источник

АГ

Александр Гранин... in Haskell
Maxim Koltsov
а вот у Саши, кстати, в HFM есть люк в ио
Есть, да.
источник

АГ

Александр Гранин... in Haskell
Ключевое различие в том, что ты этот люк контролируешь
источник

YS

Yan Shkurinskiy in Haskell
Можно написать MyMonadIO и будет то же самое
источник

АГ

Александр Гранин... in Haskell
Живой пример. В бэкендной кодобазе Juspay, написанной на PureScript, товарищи накидали кода со скрытыми эффектами. Функция задекларирована чистой, а внутри она делает эффект. Такое возможно, например, при вызове JS-функции. Этот код нельзя было протестировать, он постоянно лез во внешний мир и делал какую-то дичь. Но когда понадобилось сделать его тестируемым (с помощью Automatic Whitebox Testing), мы все эти места нашли и перевели на "люк", - метод runIO, который оборачивает эффекты (назывался он, правда, doAff, но суть та же). Теперь уже мы в наших тестах могли замокать этот метод, и код становился тестируемым.
источник