Дима
Alexander
модно?
тот
чуваки полегче, вы ведь все боги
Дима
максимально модно охаить за все время
Дима
Тренд я бы сказал
Alexander
Alexander
а ещё он всегда приходит когда у меня плохое настроение и я не против поругаться
Alexander
:/
Дима
Юз кейсов XML никто так и не нашел
Alexander
мне аж стыдно
Дима
Alexander
неужто банкообщение и прочее ушло на yaml?
Alexander
в странах где einvoice и т.п. стали обыденностью, конечно
Alexander
я могу рассказать свой опыт попыток протолкнуть xml, который закончился тем что вообще взяли байткод
Vladimir
Ага, половина софта XML использует, а юзкейсов нет)
Yurii
Haskell
https://combot.org/chat/-1001043143583
https://t.me/haskellru
Vladimir
Даже среди типовых форматов файлов xml'я полно.
Alexander
ну наверное простой конфиг я бы не хотел xml-ем писать
Alexander
и передавать данные между двумя точками, где протокол полностью мой и все в одном неймспейсе
Vladimir
Хз, я не раз это делал, и не жалею. Простые конфиги имеют свойство становиться непростыми.
Alexander
и когда я не хочу автоматом pdf из сообщения негерить
Alexander
и xslt трансформации натравливать
Vladimir
расширяемость ибо
Alexander
дело было в рельсах, там есть возможность сериализовывать объекты прямо в yaml и хранить их в таком виде прямо в базе. Раз возможность есть, то рано или поздно кто-нибудь ей воспользуется.
Чтобы такой yaml корректно парсился нужно чтобы он соответствовал коду, а в код понадобилось как то внести изменения.
После первого опыта такого апдейта появилось понимание что надо что то менять. Так как база была postgres, выбор был между jsonb (aka json) и xml. В json данные нормально просто было не впихнуть а xml позволял писать простые миграции на xslt, но примерно в этот момент мы заметили что десериализация это ботлнек и в итоге пришлось фигачить байткод, а обновление писать на тяжелых костылях прямо в рантайме
Alexander
минусов я не вижу, а если в редакторе есть поддержка dtd работать становится приятнее
Дима
Дима
Никто не спорит с тем что он много где используется, но это не делает его актуальным или удобным
Alexander
кстати, а хаскель вообще yaml 1.2 поддерживает? На уровне библиотек
Alex
Джентельмены, а как реализуется функция pure?
Alexander
в зависимости от класса типов
Alexander
Alex
Просто так
Alexander
мне вопрос не до конца понятен
Alexander
Просто так
для каждого инстанса Applicative по своему
Alex
Понял
Alex
Спасибо:)
Alexander
в отпуск мне надо идти, чтобы не нарушать поговорку про телепатов
Ilya
Джентельмены, а как реализуется функция pure?
return (или pure) упаковывает значение в контейнер тривиальным образом, т.е. как будто (побочного) эффекта нет. Монада Maybe описывает вычисления с возможной ошибкой, но return x = Just x, т.е. ошибки нет. Монада списка описывает недетерменированные вычисления, но return x = [x], т.е. результат детерменирован. Монада State описывает вычисления с изменяющимся состоянием, но return x = \s -> (x, s), то есть состояние не меняется. И так далее.
Alex
А чем return от pure отличается?
Alex
Там монада а там апликатив?
Ilya
pure в Applicative, return в Monad. Для тех типов, для которых есть Monad — ничем не отличается
Alex
Спасибо:)
кана
Джентельмены, а как реализуется функция pure?
Возможно хорошая интуиция - pure описывает не результат, а аргумент. То есть pure берет чистое (pure) значение и отдает эффектное значение (лишь по типу, никаких эффектов оно не делает (по законам, по факту зависит от реализации))
То есть типа (seconds 10, color "red", pure 10)
Alexander
а какие проблемы?
Alexander
и как стек их решает
Alexander
ну кроме того что помогает засунуть голову в песок
IC
Не знаю, что там сейчас в кабал-инстале... Раньше жесть была. Посмотрю ещё раз, когда префиксы уберут у команд.
IC
Я к тому, что нет смысла топить за свой любимый фронт к библиотеке, тем более таким образом.
IC
Стэк это не только вредно, но и полезно.
Alexander
каким-таким?
Alexander
@icrbow ^
Alexander
похоже я так и не узнаю каким образом я топлю за кабал
Alexander
печалька
Alexander
и почему таким образом топить за кабал нельзя
Alexander
и можно ли каким-то образом топить за стек
Alexander
видимо можно, т.к. цитаты тем, кто топит за стек из истории никто не выдергивает
Anatolii
Последние разы когда я стэуом пользовался - часто прилодилось чистить папку стэка.
Anatolii
Я за Никс+Кабал
jm
Мы туда же идем в Serokell.
jm
stack clean --full является у нас мемом.
Alexander
я бы решая такую задачу инкрементил в потоке-суперввизоре
Alexander
хотя по перформансу не так круто, конечно
Dmitry
Можно и так
Alexander
но вообще странно что перформанс инкремента важен в контексте обработки объектов
Alexander
мне кажется на фоне обработки пофигу
Dmitry
В целом, да. Но если это делается двумя-тремя строчками кода, почему бы и не улучшить производительность на 0.01% ;)
Alexander
ну это при прочих равных
Alexander
Alexander
Потоки, создаваемые forkIO, очень дешевы, и поэтому в значительном количестве случаев имеет смысл не держать сотни тысяч уже готовых, а создавать для каждой отдельной активности
Alexander
Dmitry
Так а зачем тогда Vector.Storable предлагать? Там же сразу гонка будет на инкрементации
Alexander
я задачу не видел, только про скорость
Ilya
можно как-нибудь Applicative и Functor автоматически вывести из Monad? Хочу удалить такой код
instance Applicative where
pure = return
(<*>) = ap
instance Functor where
fmap = ap . return
Ilya
или так все пишут, и это норм?
Alexander
Тут тоже задача не ясна. Что значит - удалить код? Кто-то его написал, а ты решил, что это не нужно? Или ты написал свою монаду и захотел инстансы не определять?