Artyom
потому что это синтаксис для деконструкции (которую можно делать через паттерн-синонимы)
Artyom
в лучшем случае оно бы забайндило что-нибудь в переменную с названием #hi, от чего толку мало
A64m
Это как? Ни разу не видел
> [(3, Just True, False)] & template %~ not [(3,Just False,True)]
Зигохистоморфный
> [(3, Just True, False)] & template %~ not [(3,Just False,True)]
template это вроде что-то из Generics?
A64m
нет, это syb-образные дженерики на Data и Typeable
Зигохистоморфный
ну я это и имел ввиду
Cheese
Это как? Ни разу не видел
https://hackage.haskell.org/package/generic-lens
Cheese
а, и плэйты тоже
A64m
https://hackage.haskell.org/package/generic-lens
эти не на рантаймовой рефлексии как раз
A64m
а на компайлтаймовой
Антон
А как вообще рантаймовая рефлексия на Хаскелле работает? Там же вроде труЪ как можно больше на компилтайм переносить
A64m
да, но она есть
A64m
rtti для всех типов, это Typeable, более продвинутая рефлексия - это класс Data, этот надо выводить, по умолчанию для всего он не выводится
A64m
работает как и все тайпклассы работают
Vasiliy
я ведь правильно понял, что нужно использовать это http://hackage.haskell.org/package/cryptonite ? вроде бы самый котируемый пакет и в нем все есть есть еще cryptohash и просто Crypto а, cryptohash deprecated и рекомендуют cryptonite
Leonid 🦇
да. но учти что автор любит ломать api и вместо pvp у него semver
Vasiliy
понял, прикольно)
Cheese
не, 2 числа — это ComVer
Cheese
SemVer из 3 чисел
Cheese
если номер начинается с 0, значит, автор не хочет, чтобы вы использовали его библиотеку, поэтому ломает часто с чистой совестью
Alexander
SEMVER говно!
Alexander
даже pvp лучше semver
Alexander
большего идиотизма чем 0.x в semver придумать нельзя
Alexander
извините
Alexander
в tasty как-нить можно параллельное выполнение тестов вырубить?
Alexander
внутри
Leonid 🦇
таскать мвар?
Leonid 🦇
я например таскаю пул постгресовских бд для деструктивных тестов. сразу делаешь 4 штуки и норм.
Denis
в мваре поднимаешь четыре докера с постгресом?
Denis
я ничего не понял
Denis
типа один набор тестов данные ушатал, а следующий набор тестов в другую базу сразу?
Alexander
Почему?
прописывать особенное поведение для части версий абсолютно нелогично
Alexander
и прыжок к <1.
Alexander
учитывая что в других схемах аналогичную логику зоделать тоже можно
Leonid 🦇
типа один набор тестов данные ушатал, а следующий набор тестов в другую базу сразу?
CREATE DATABASE 4 раза. для тестов у которых транзакцию не откатить.
Alexander
а если делать 0.100500
Leonid 🦇
короче CREATE DATABASe из шаблона очень шустро делает бд с данными
Denis
быстрее copy?
Антон
а если делать 0.100500
Так и бывает, пока не стабилизируют
Alexander
да и это глупо
Leonid 🦇
быстрее copy?
да. делаешь БД, заливаешь данные и помечаешь как template. CREATE DATABASE FROM TEMPLATE (синтаксис не точный) или копирует тупо файлы или вообще ссылается на шаблонные.
Leonid 🦇
мгновенно в общем
Denis
я знаю про темплейты, но непонятно почему это быстрее COPY
Denis
копирование в обоих случаях
Denis
с диска чтение в обоих тоже
Leonid 🦇
ну так одной командой все данные будут в новой бд
Denis
ну разве что сразу в постгресовом формате все разложено и просто memcpy
Denis
ну а состояние темплейта самого перед тестами из чего-то внешнего раскатываешь?
Leonid 🦇
да, из бекапа
Leonid 🦇
вперемешку с psql -f data.sql
Mikekekeke
Здравсвуйте. Подскажите, как нужно вызывать put (для Maybe, например), чтобы не получить "Ambiguous type variables..." вот в таком случае: class Container a where put :: b -> a b get :: a b -> b instance Container [] where put a = [a] get (a:[]) = a instance Container Maybe where put a = Just a get (Just a) = a get _ = error "can't get from nothing"
Artyom
@mikekekeke • покажи ошибку • ещё покажи код, который выдаёт ошибку (я предполагаю, что ты в дополнение к тому, что ты написал, ещё что-то запустил в ghci)
Artyom
эти пункты стоит делать всегда, когда ты спрашиваешь про ошибки 🙂
Кабачок
Есть три варианта: - написать так, чтобы тип выводился из контекста - приписать его явно - использовать TypeApplications
Зигохистоморфный
мб тайп фемили? или FD?
Artyom
@mikekekeke а какой вывод ты ожидал?
Кабачок
мб тайп фемили? или FD?
Не пугай ребенка, не разобрался, а лезешь.
Mikekekeke
@mikekekeke а какой вывод ты ожидал?
я ожидал, что так и будет. Мне интересно, как обойтись без "listPut", но получить тот же результат
Artyom
а, понятно
Artyom
1. reverse (put 3) – сработает, потому что выведется, что там должен быть список 2. put 3 :: [Int] 3. put @[] 3 (с включенным TypeApplications – http://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#ghc-flag--XTypeApplications)
Mikekekeke
понял, большое спасибо
Кабачок
Ещё вариант asTypeOf (put 3) []
Кабачок
https://hackage.haskell.org/package/base-4.10.1.0/docs/Prelude.html#v:asTypeOf
Зигохистоморфный
Не пугай ребенка, не разобрался, а лезешь.
ах да) плюсы и минусы полиморфности) слишком полиморфная функция
Mikekekeke
Ещё вариант asTypeOf (put 3) []
намотал на карандаш, спасибо
Alexander
PVP гораздо логичнее, чем semver
Alexander
кто это не видит, у того integer overflow не триггерится
Cheese
какая логика в двух мажорах?
Alexander
чуть большая, чем в двух мажорах в семвере
Alexander
там они спрятаны в 0 и 1
Alexander
=-)
Alexander
в том, что степень изменений и поломок может быть разная
Cheese
"ты втираешь мне какую-то дичь"
Artyom
какая логика в двух мажорах?
маркетинг как же я ещё покажу, что я ПЕРЕЛОПАТИЛ ВСЁ для нового релиза
Alexander
или как я покажу, что я сломал все ваши юзкейсы т.к. изменилась семантика