Alexander
особенно учитывая что Reader это тупо ->, а параметры в функции это вроде не плохо
Aleksei (astynax)
Мутабельная ссылка на мутабельный референс, что может пойти не так?
Leonid 🦇
Ну, может между запусками нужно хранить. Это же микросервисы, некогда не знаешь в какой момент кубернетесы всякие решат его убить и запустить на другой ноде
Anonymous
N мутабельных ссылок на разные подкомпоненты стейта, ты имел ввиду?
Aleksei (astynax)
StateT (IORef [IORef a]) :)
Anonymous
Вариант.
Мерль
Даже веселее, это закончится тем, что ты будешь делать встроенную СУБД своими руками, с индексами и журналами
Вместо того, чтобы прикрутить редис
Alexander
но ведь даже своя криво написанная СУБД лучше чем реддис?
Крылатый
Чем редиска плоха?
Alexander
тем что для встраиваемой есть средства и лучше, так же как внешней и распределенной тоже
Aleksei (astynax)
Для начала нужно понять, узкое ли это будет место
Aleksei (astynax)
Может и sqlite хватить много для чего
Alexander
у меня конкретных претензий нет, везде где она была решение выпишите и заменить было до меня
Alexander
ну sqlite вообще классика и прекрасно
Alexander
для простых кейсов во всяком случае
Евгений
sqlite это 100%'ные локи
Евгений
Он хорош только если на одну запись приходится > 500 чтений
Alexander
для начала нужно понять, что в итоге хочется, чтобы выбирать из правильного класса решений хотя бы
Alexander
а то может начальное утверждение что быть стейтлес плохо - неверно
Alexander
а мы тут базу ищем
Зигохистоморфный
https://gist.github.com/CMCDragonkai/b203769c588caddf8cb051529339635c
Зигохистоморфный
даешь все кванторы в хаскелл)
Vladislav
pi добавили бы
Vladislav
А экзистенциальная и так энкодится
Зигохистоморфный
Vladislav
exists x. t = forall r. (forall x. t -> r) -> r
Зигохистоморфный
форол на фороле
Vladislav
Обычный continuation passing
Зигохистоморфный
Vladislav
Вместо 'a' всегда можно написать '(a -> r) -> r'
Vladislav
Это определение Cont
Vladislav
Если быть параметричным по 'r', то будет изоморфно
Vladislav
И forall второго ранга превращается в exists
Зигохистоморфный
а в чем тогда профит от pi?
Vladislav
Синглтоны можно будет выкинуть.
Vladislav
Хотя начать неплохо было бы с кайнда для функций на типах, тогда можно будет от дефункционализации избавиться (из-за которой синглтоны и есть такие неудобные)
Vladislav
https://github.com/ghc-proposals/ghc-proposals/pull/52
Vladislav
А если все на свете промотиться будет, то pi через Sing выражается
Зигохистоморфный
инетерсно в идрис есть pi?
Alex
есть конечно
Vladislav
Конечно, там только он и есть
Alex
в этом же и поинт идриса, что он там изначально по построению есть
Зигохистоморфный
еще интересно почему идрис энергичный а не ленивый, это как-то связано с тотальностью?
Vladislav
Не связано
Евгений
pi as Π?
Vladislav
Да
Alex
вообще связано, бреди писал что при тотальности мол неважно ленивый язык или строгий :)
Alex
но основная причина мол проще за ресурсами следить
Vladislav
Так не важно, поэтому не связано
Евгений
Эм? А как может быть "ленивый" тотальный язык?
Vladislav
Агда напр.
Vladislav
Ленивость это нормальная стратегия для вычисления тотальных функций
Vladislav
Надо только гарантировать отсутствие боттомов статически
Евгений
Так для тотального подмножества лямбды стратегия одна, нет?
Vladislav
Она скорее не важна и повлияет только на асимптотику, а не на результат.
Евгений
Множество стратегий появляется, если есть терм, у которого нету нормальной формы
Vladislav
А так их конечно много
Евгений
Vladislav
Ну и всякую корекурсию проще всего реализовать как ленивость
Евгений
Я, кстати, до сих пор не понимаю как коиндукция тотальность гарантирует. Как нормальная форма для коиндукции выглядит?
Зигохистоморфный
Vladislav
Евгений
Я как-то так и думал, но ты заговорил о коиндукции в контексте тотальности...
Зигохистоморфный
интересно если хистоморфизм позволяет обращаться по истории на любой шаг, то выходит Cofree хранит всю историю вычислений свертки?
Vladislav
Евгений
Ну такое, обычно под тотальным понимают имеющее нормальную форму
Vladislav
Тотальная функция на любом инпуте дает аутпут за конечное время, здесь разница в том, что можно запросить произвольную часть бесконечного аутпута
Зигохистоморфный
кто-то понял досконально рекурсивные схемы?)
Alex
я смотрю вам ваш ник покоя не дает :)
Aleksei (astynax)
xgrommx слегка упоролся рекурсивными схемами :)
a66ath
Кметт понял
Aleksei (astynax)
Кметт понял, что есть ещё пара слоёв понимания
Aleksei (astynax)
Для них тоже будут(есть?) пакеты
Aleksei (astynax)
так внеси вклад, начни писать :)
Vasiliy
как же это нет
Vasiliy
http://blog.sumtypeofway.com/ http://duplode.github.io/posts/whats-in-a-fold.html https://monad.cat/posts/2016-05-10-barbed-wire.html
Aleksei (astynax)
кстати да, есть же колючая проволока!
А ещё конверты и бананы с линзами :)