Aleksei (astynax)
призма - сама себе фильтр, когда в траверсе находится
Зигохистоморфный
призма - сама себе фильтр, когда в траверсе находится
• Couldn't match type ‘Pet’ with ‘(String, Int)’
Expected type: (String -> Const (Endo [String]) String)
-> (String, Int) -> Const (Endo [String]) (String, Int)
Actual type: (String -> Const (Endo [String]) String)
-> Pet -> Const (Endo [String]) Pet
• In the second argument of ‘(.)’, namely ‘name’
In the second argument of ‘(.)’, namely ‘_Cat . name’
In the second argument of ‘(.)’, namely ‘traverse . _Cat . name’
Aleksei (astynax)
кусок ошибки без кода и не на минимальном примере не способствует желанию ошибку читать :)
Aleksei (astynax)
> [Left (1,"foo"), Right (), Left (2, "bar")] ^.. traverse . _Left . _2
["foo","bar"]
Vasiliy
дело в том, что makePrisms делает _Cat призмой из Pet в (String, Int)
Зигохистоморфный
Aleksei (astynax)
Хмм, да, _Left это не призма, а изо
Зигохистоморфный
а для этого изо сделать можно?)
Aleksei (astynax)
λ> data Pet = Dog { _age::Int,_name::String} | Cat{_age::Int,_name::String} deriving (Show); $(makePrisms ''Pet); $(makeLenses ''Pet)
λ> [Cat 3 "Tom", Dog 5 "Sparky"] ^.. traverse . _Dog . re _Dog . name
["Sparky"]
тут без filtered, но приходится обратно восстанавливать рекорды, чтобы линзы по имени применить
Alexander
кто виндой пользуется
Alexander
есть какой-нить путь вперёд для библиотек хотящих icu?
Alexander
кроме как самому обновить mingw-шную либу, что потребует пересбоки много чего, чего там сам пакман за меня не сделает?
Alexander
или установки icu с сайта и добавления его в library path руками
Зигохистоморфный
Alexander
но учитывая что черт знает чем оно собиралось, то ловлением произвольных проблем?
Aleksei (astynax)
немного оверхед
тогда _Dog . _2 или filtered. В случае с filtered всё равно "распаковка" делается два раза - в фильтре, потом в линзе.
Aleksei (astynax)
линзы вообще не про эффективность :)
Alexander
все зафьюзится
Alexander
наверное
Alexander
возможно
Alexander
но это не точно
Aleksei (astynax)
_X . re _X тоже может зафьюзится. Наверное
Alexander
ну я про это
Alexander
а никто nix под msys не пытался заводить?
Anonymous
Есть вопрос, может кто подскажет (не до конца въехал в type-level machinery).
Есть функция: fft1D_m -
https://github.com/Haskell-mouse/accelerate-fft/blob/master/Data/Array/Accelerate/Math/FFT/LLVM/Native.hs
Сейчас функция позволяет делать построчное преобразование фурье только для 2-мерных массивов (DIM2), если сменить на переменную типа(чтобы построчный фурье можно было делать по n-мерным массивам), то компилятор ругается на тип подфункции go. Проблема в том, что в типе функции go( CArray (Int, Int) (Complex r)) в кортеже должно быть столько членов, какова размерность массива.
Anonymous
Мне в принципе хватает и по матрице, но хотелось бы расширить на массив произвольной размерности :-)
Alexander
я бы не стал лезть в это если не прям-вот-надо
Alexander
там все сложно
кана
может кто дать список вот реально production-usage либ? Которые может не так интересны теорететически (типа рекурсивных схем), но которые используются в реальном мире)
кана
Сам я вроде как поверхносно знаком с линзами, аналогично с сервантом, трасформерами, мтл, хочу познакомиться с варпом и вай поближе. Нашел сейчас pipe.
Понял, что я действительно хочу найти работу на хаскеле, а значит нужно сместить фокус.
Aleksei (astynax)
aeson, cassava, conduits, blaze
Aleksei (astynax)
Настолько разный у всехз "продакшн", что общего не так уж и много.
Alexander
bytestring, vector
Alexander
а вообще да
Alexander
кстати на f(by).by haskell неупомянут на сайте
Alexander
вообще что за дела
Alexander
кложа скала котлин
Evgeny
Вроде как conduits успешно pipe заменили
Evgeny
И развиваются активней
Anonymous
я бы не стал лезть в это если не прям-вот-надо
Не, ну я могу написать эту функцию для 3 и 4 мерных массивов тем же макаром, но это ж не красиво)
А что до лезть, то уже влез) изначально accelerate-fft не имел построчного фурье. Вот хочу доделать и пошлю пулл реквест
Alexander
если нужно сделать для себя, про проще 3 и 4 сначала сделать, а потом уже играться с хорошим общим случаем
Artyom
@kana_sama вот наш продакшн, если интересно (отфильтрованный от мусора, который точно большинству не нужен): http://lpaste.net/1446613601690320896
может, если пять–десять таких списков соберёшь, что-нибудь интересное и вырисуется (ну кроме “все юзают text, кто бы мог подумать”)
Aleksei (astynax)
Разница между conduits и pipes в сопутствующих либах
кана
меня больше всего интересует работа с базами
кана
persistent удобный, но куча ТН и какой-то он "императивный". Знакомый кидал какую-то либу на профункторах, opaleye
Aleksei (astynax)
тут вообще все разное юзают
Aleksei (astynax)
postgresql-simple, hasql
Misha
acid-state'а хватит всем, а так любые обертки над человеческими базами годятся, в принципе
Aleksei (astynax)
это ещё, да
Alexander
persistent удобный прикольно
Alexander
acid-state хватит всем кому не нужно параллельного доступа, consistency, транзакций, хоть каких-то гарантий, что данные запишутся хорошо и правильно
Alexander
/me злой какой-то сегодня
Aleksei (astynax)
но ведь это правда :)
Anatolii
там есть issue старщшное
Anatolii
что данные бьются
Alexander
у нас lmdb и hasql используются
Alexander
но для lmdb я почти с нуля переписал либы
Anatolii
наверное rocksdb можно еще взять
Misha
Alexander
эти проблемы проблемами не являются?!
Anatolii
https://github.com/acid-state/acid-state/issues/79
Alexander
LOL
Alexander
недостатки в чекпоинтах?!
Anatolii
я не хочу как-то ночью проснутся и найти убитую базу
Anatolii
по сути средств восстановить ее нету
Alexander
я бы упал под стол но у меня ноут на коленях стоит
Alexander
не надо мне ничего больше говорить, мне ноут жалко
Anatolii
там Durability нет - обо всем остальном можно уже не говорить
Artyom
Anatolii
ну я бы не стал ждать и переехал уже на что-то нормальное
Artyom
у нас же форк асид-стейта, в котором я это пофиксил
Artyom
:troll:
Misha
Misha