Антон
Хотя не, по умолчанию там из HEAD подтягивается
Влод
типа просто говорит устраивает ли его версия из head или нет?
Alexander
Странного или страшного? Ну, у меня создалось ощущение, возможно ложное, что они вам не нравятся категорически.
Alexander
Если поподробнее описание задачи составите, я точнее скажу
Denis
а, там страшного
Denis
страшного тоже ничего не вижу
Alexander
Так что там по задаче сделать-то надо?
Denis
мне не нужно писать интерпретатор
Denis
мне нужно эффективно составлять структуру из вложенных рекордов
Alexander
Но все же? Просто Free-монада - практически Cont, только своеобразная
Alexander
Тип рекорда можно увидеть?
Denis
я знаю что такое фри монада и мне оно тут не надо, спасибо
Denis
обычные хаскельные рекорды
Alexander
Нет так нет.
Влод
взял на ровном месте обидел человека
Alexander
Я не специально
Влод
на самом деле не особо следил за той веткой обсуждения, но там задача вроде и правда не очень описана
Denis
кто кого обидел?
Denis
по-моему Александр не обидился, судя по его сообщению
A64m
я припоминаю одну экспериментальню библиотеку, где развесистый "функторизированный" объект можно было в мутабельный переделывать а потом замораживать, data-kiln или что-то вроде. Но она игрушечная, да и такие сложности нужны для графов, а не деревьев.
Влод
звучало токсично
Denis
токсичность себе дерните, псы
A64m
для преобразования в/из мутабельную то нужны
Denis
я пытаюсь тут чего-нибудь наговнокодить с продолжениями, чтобы мутабельные вообще не были нужны
Denis
но я не уверен в успехе
Влод
это результат работы sax-парсера
вот здесь вот наверное у читателя может появится интуиция должна появится у читателя
A64m
но там всякие тормозные вещи вроде разрешения циклов на словаре из контейнерс так что тормоза, наверное, адовые
Влод
а в остальном звучит так как будто ты наделал типов и не знаешь как им инстансы создавать
Влод
в общем не можешь натянуть типы
Denis
я зато кибербуллерам могу глаз на жопу натянуть
Влод
воу воу
Влод
хорошо
Влод
понял тебя
A64m
не очень звучит как-то
ну там только пруф оф концепт
Denis
вообще надо что-то попроще придумать, какую-нибудь плоскую структуру иметь и единожды её в рекорды расфасовывать
Denis
у меня на продолжениях писать чего-то ум за разум заворачивается тут
Влод
то есть переаллоцировать одну огромную плоскую структуру дешевле чем вложенные?
Alexandr
я зато кибербуллерам могу глаз на жопу натянуть
Сохраню это сообщение с кавычками
Denis
то есть переаллоцировать одну огромную плоскую структуру дешевле чем вложенные?
разумеется, для персистентной структуры данных для каждого апдейта аллокации будут
Влод
наверное иммутабельной?
Denis
это одно и то же
Denis
https://en.wikipedia.org/wiki/Persistent_data_structure
Denis
сразу видно окасаки не читали
Влод
то есть у тебя или где-то в недрах хаскеля релизовано это версионирование?
Влод
когда апдейт дополняет данные а не пересоздаёт их
Влод
это одно и то же
https://en.wikipedia.org/wiki/Immutable_object
Denis
применительно к структурам данных это одно и то же
Denis
в ФЯП по крайней мере
Denis
но вообще про структуры чаще говорят что они персистентны, а про данные, что иммутабельны
Влод
ааа
Влод
ну впервые вижу что к структурам и данным такой смысл придают. обычно это слишком общие слова чтобы придавать им какой-то окрас. в одном предложении одну и ту же фигню можно то структурой то данным назвать
Влод
а персистентное это обычно либо то что на жёстком диске, либо то на что ты скинул ссылку
Denis
персистентные они в том смысле, что старая память не мутируется
Denis
т.е. аллоцируется новая часть структуры при апдейте, боксится и указатель начинает указывать на новый бокс
Denis
а старая копия все еще доступна
Denis
пока старье не выйдет из скоупа и GC его не соберет
Denis
в этом смысле в хаскелле все из коробки, разумеется
Ю ли я? 🤔
А для персистентности не требуется максимальное переиспользование старых данных? Ну то есть обычный иммутабельный вектор так себе персистентная структура
Denis
так они и переиспользуются, если нужно
Ю ли я? 🤔
Ну вот в плоском векторе вроде нечего переиспользовать
Ю ли я? 🤔
Ещё вопросец: если у меня некоторую задачку можно решить при помощи TypeFamilies либо MultiParamTypeClasses, что предпочесть?
Denis
Если про хаскельные векторы говорить, то там мутабельный массив под капотом для эффективно. А вот если говорить про список, например, то рекурсивно отщепляя у него голову функцией это даст возможность в каждом “фрейме” продолжать работать со своей копией при необходимости.
Denis
про фреймы тут конечно нельзя говорить, но я не придумал как проще сказать
Denis
если требуется инъективность - предпочесть MultiParamTypeClasses
Denis
не требуется - можно на TF и вероятно чище будет
Denis
но надо на задачку смотреть
Denis
это не персистентная структура данных
Denis
да я бы не сказал
Denis
ну т.е. в каком то смысле да, если мы (Array# e) как неделимый кусок рассматриваем
Denis
но мы не рассматриваем
Denis
(вероятно)