Denis
И 20 страниц стрелочек
у них есть слова, которые заменяют 20 страниц стрелочек
Dmitry
Особенно 12 и 18-ая диаграммы смешные.
Denis
так что технически шутки короткие
Dmitry
Ну так-то да...
Alexander
шутки-однострочники
Alexander
Ох, ну вы и флудить.
кана
Ох, ну вы и флудить.
ты видел мой пост про фримонады?
Alexander
Нет, кидай ссылку
кана
https://t.me/kanaflow/96
кана
возможно ты больше знаешь и можешь рассказать, зачем там таки фри, потому что тут сказали, что пример неудачный (и действительно, кода чуть больше)
Alexander
https://t.me/kanaflow/96
Прочитал. Прикольно. 👍
Kirill
А о чем это?
Вот неплохой пост тонского на тему обратной совместимости - http://tonsky.me/blog/compatibility/ Хаскель, конечно, не в браузерах, но...
кана
мне вот это понравилось в этом сраче
кана
штальц вообще ебанутый https://github.com/staltz/prevent-smoosh
Alexander
возможно ты больше знаешь и можешь рассказать, зачем там таки фри, потому что тут сказали, что пример неудачный (и действительно, кода чуть больше)
Я бы сказал, что да, здесь фри не очень хорошо подходит. По той простой причине, что брейнфак - это, можно сказать, сплошной поток операторов над глобальным состоянием, а не цепочка последовательно связанных операций. Работать во фри монаде, конечно, будет, но длинные сценарии не очень удобно при этом обслуживать. А в брейнфак программе сценарии получатся очень длинными. Я бы написал expression на GADT или даже просто строчку, которую затем парсил бы каким-нибудь парсеком
кана
стой
кана
ты не тот пост прочитал
кана
там не было ничего про бреинфак)
Alexander
Хм?
кана
https://t.me/kanaflow - последние два вот тут короче
Leonid 🦇
Про нормальный текст, кстати http://hackage.haskell.org/package/text-short-0.1.2/docs/Data-Text-Short.html хвр добавил функциональности
A64m
фан факт, теперь хекедж ломается в браузере эдж
Alexander
о text-short
Alexander
почему не слышно криков про ещё один тип для текста
Alexander
а ну да
Alexander
там же hvr
Leonid 🦇
А твеаг добро или зло?
Arseniy
Серокель добро!
Arseniy
Твиги тоже красавчик
A64m
добро юниверсум использовать не станет
Kirill
добро это SPJ
Arseniy
добро юниверсум использовать не станет
Issues + pull requests -> мы будем рады
Kirill
ну Семён Марлов ещё, наверное
Kirill
остальное от лукавого :)
A64m
добро это SPJ
это ветхозаветное добро, новое добро - это Кметт
Alexander
SPJ это вообще квинтенсенция добра
A64m
А Марлоу - это зло
Kirill
ой, блин, как я Кметта-то забыл
Alexander
причем в каком смысле "добро" не используй
Alexander
https://t.me/kanaflow - последние два вот тут короче
Нормально там Free подходит. Ну, разве что, в боевых условиях языки будут немного другие. У двух последних решений есть еще одна проблема: неразделенные интерфейс и реализация. Можно подставлять монаду, но это форсит пользователя к определенному решению. И еще бывает нужно разделить бизнес-логику и рантайм, чтобы избежать ситуации, когда пользователи прибегают к рандомным ad-hoc дизайнерским решениям в коде (проще говоря, хачат). Например, в бизнес-логике мы делаем вызовы некоторого API, но на уровне интерпретаторов эти вызовы трансформируются в HTTP-запросы. На уровне бизнес-логики совершенно незачем (и даже вредно) таскать с собой настройки, API-ключи, логины и пароли для HTTP API. Поэтому они логичным образом уходят в рантайм (в интерпретатор), и в бизнес-логике у вас просто абстрактные вызовы.
Kirill
надо свечку поставить в оправдание
Kirill
Alexander
о, напомнили, я ж хотел попробовать с final tagless попробовать сделать resumable computations
кана
Нормально там Free подходит. Ну, разве что, в боевых условиях языки будут немного другие. У двух последних решений есть еще одна проблема: неразделенные интерфейс и реализация. Можно подставлять монаду, но это форсит пользователя к определенному решению. И еще бывает нужно разделить бизнес-логику и рантайм, чтобы избежать ситуации, когда пользователи прибегают к рандомным ad-hoc дизайнерским решениям в коде (проще говоря, хачат). Например, в бизнес-логике мы делаем вызовы некоторого API, но на уровне интерпретаторов эти вызовы трансформируются в HTTP-запросы. На уровне бизнес-логики совершенно незачем (и даже вредно) таскать с собой настройки, API-ключи, логины и пароли для HTTP API. Поэтому они логичным образом уходят в рантайм (в интерпретатор), и в бизнес-логике у вас просто абстрактные вызовы.
так вроде интерфейс и реализация вполне себе разделены с final tagless у нас тоже не будет никаких данных о ключах, логинах в бизнес логике, все внутри реализации
Aleksey
Народ, а можно как-то заставить критерион не считать результаты функций, которые выпали с исключением? А лучше сразу завешрать бенчмарк с ошибкой при первом фейле.
A64m
А олег киселев?
это такой предмессия был, Жан Баптист
A64m
никакого клапауция не существует
кана
в принципе конструкторы можно убрать если задерайвить MonadReader
Alexander
И будет ReaderT паттерн?
кана
IORef? во фри ты предлагаешь остановить выполнение и начать заново с того же места с новым конфигом?
Евгений
никакого клапауция не существует
Меня может тоже не существует, итт вроде меня никто не видел. Но тем менее можно давать мне характеристики
Alexander
Нет, во фри можно стейтмонаду как таргет использовать. IORef тоже сработает, но лучше не
кана
так и тут State можно как таргет же
Alexander
Давай уточним. Пусть твой вызов getBalance должен превратиться в HTTP запрос с API-ключом. Какая была бы реализация?
Cheese
это такой предмессия был, Жан Баптист
либо Джон Баптист, либо Жан Батист
A64m
либо Джон Баптист, либо Жан Батист
один Джон Баптист, второй Жан Батист а третий и вовсе Иоанн Креститель. "Олег" "Киселев" - это комитет же.
Alexander
о, напомнили, я ж хотел попробовать с final tagless попробовать сделать resumable computations
А с какой целью? Ради эксперимента? На фри монадах делается, доказано
Alexander
я знаю, что делается
кана
стейт чтобы токен динамически менять
кана
можно и сразу стейт отдавать
Alexander
Ага, вижу. Да, так тоже норм
A64m
ITT строили сеть доверия, приводящую к киселеву
вроде это не совсем только старая шутка, когда-то реально существовали люди, которые считали что это коллектив авторов, сейчас-то нет, конечно
Евгений
Киселев -- хаскеллистский шекспир!
кана
Не было еще либ, которая полностью mtl реэкспортит с инвестированными аргументами раннеров?
кана
А то устал уже от этих flip
A64m
(??) = flip runReaderT ?? [1,2]
Denis
В автоботов тогда уж
Serghei
про Хокинга все уже в курсе?