Aleksei (astynax)
В доке всё написано
Aleksei (astynax)
> A version of execute that does not perform query substitution.
Aleksei (astynax)
"DELETE FROM todo" как раз без параметров
Oleks
недогледел, спасибо)
Cheese
кроме того, "DELETE FROM todo" вряд ли возвращает [TodoItem]
Oleks
да, это тоже заметил уже, исправил)
Aleksei (astynax)
Как мне из призмы сделать Getter с Maybe? Prism' s a -> Getter s (Maybe a)
Vladislav
to (preview prsm)
Aleksei (astynax)
хмм
Aleksei (astynax)
А Getting случайно не обобщит мне Getter s (Maybe a) и Prism' s a?
Vladislav
pre - неплохо
Vladislav
preview = view . pre и to . view это почти id, то to . preview = pre
Vladislav
можно просто to . view убрать лишние из моего варианта и получить pre
Aleksei (astynax)
Оставил pre, всем спасибо!
Ilya
Ilya
На степике есть задача про конкатенацию контейнеров с нечетным числом элементов. Помогите найти придумать тест, на котором оно валится с 'Runtime error main: out of memory' в их системе, а то на моих локальных тестах всё ок :( P.S. Решение мне кидать не надо, хочу сам ошибку найти. Тем более, что одно рабочее решение у меня есть, сейчас просто решаю другим способом.
Ilya
Бесконечные контейнеры тоже пробовал, но видимо недостаточно бесконечные
Aleksei (astynax)
при паттернматчинге лишнее матчится, поэтому при некоторых бесконечных последовательностях получается перерасход памяти
Ilya
ну вот мне тест бы конкретный, а то устал уже в код вглядываться
Aleksei (astynax)
Есть в новичковом чате разбор ровно этого задания. Но там есть куски решения, так что осторожнее :)
Ilya
да разбор нафиг, тем более что я его решил уже по-другому (не через [])
Aleksei (astynax)
Там тоже "не через"
Ilya
я на таких тестировал inf x = Bi x x (inf x) inf2 = Bi x x (Un x) where x = inf 1 inf3 = inf (inf 1) inf4 = inf (inf (inf 1))
Ilya
и кажется, что всё нормально работает, т.е. продуктивно
Aleksei (astynax)
Про конкретные ничего сказать не могу, мы само решение обсуждали, а не тесты
Ilya
да там тривиальное решение
Ilya
я как раз решил потом сделать нетривиально, через введение доп. типа "контейнер с чётным числом элементов", и вот это решение уже валится
Ilya
мне оно показалось красивее, хотя и многословнее
Oleg
Скажите, а с Quantified Constraints эта пачка всё ещё будет нужна? http://hackage.haskell.org/package/base-4.11.1.0/docs/Data-Functor-Classes.html#g:2
Oleg
@A64m_qb0
Vladislav
Нет
Oleg
Так и думал, спс
Cheese
в Гиттере спрашивают > Всем привет! Вопрос к знатокам eventlog: можно через него визуализировать на что уходит память? Как это сделать? :) > В мануале написано, что heap profiling туда события эмитит, но как потом посмотреть что происходило? > hp2ps мне не помог - "samples out of sequence" даже если компилировал без -threading. https://gitter.im/ruHaskell/forall
Kirill
@qnikst вы вроде такое делали про память через eventlog, ничего в паблик не попало?
Слава
query что-то выбирает из БД и возвращает. DELETE, это команда
Насколько я помню, delete может возвращать количество удалённых записей.
Aleksei (astynax)
Может, но в том примере это не требовалось
Alexander
полноценного решения у нас не было
Kirill
а что тыб посчитал полноценным решением в данном случае?
Alexander
либу, которую можно прицепить к своей программе и получить данные в машиночитаьельном виде
Kirill
прям вообще с минимум телодвижений? былоб круто
Alexander
но я не знаю как такое делать правильно
Viacheslav
А подскажите где хорошего почитать про стримы и около того?
Cheese
про кондуиты — статьи Сноймана на fpcomplete
Cheese
у пайпов есть модуль Pipes.Tutorial
Cheese
господа, подскажите, есть ли имя у either id id?
кана
fromEither говорит хугл
Cheese
о, возьму id ||| id, если захочу запутать читателя
Viacheslav
Это я нашел
A64m
киселева еще можно почитать
Viacheslav
Viacheslav
думал есть что-то побольше
Влод
Не думал что концепт настолько сложный что нужно читать киселева
eahqzsr
Почему я могу сказать 1 :: Sum Int но не могу сказать True :: All?
Ilya
Потому что численные литералы перегружены
Ilya
Общий тип 1 -- Num a => a
Ilya
А True -- просто конструктор
eahqzsr
И как это помогает из Num сделать Sum Int (не Int!)?
Cheese
существует instance Num (Sum a), что позволяет Sum выглядеть и вести себя как число
eahqzsr
Нет понятно что Sum ведёт себя как число. За счёт чего я могу Num привести к Sum Int?
Cheese
за счёт instance
Алексей
Num — класс типов, Sum Int — тип. У него есть инстанс Num
Cheese
1 :: Num a => a требует предоставить ей любой a, для которого выполняется Num a
Евгений
Если выражаться "обыкновенным" языком, то Num это интерфейс, а Sum Int тип. Мы можем использовать 28, 45, прочие цифровые литералы в качестве любого типа, реализующего интерфейс Num
Cheese
для Sum b выполняется Num (Sum b), что декларируется соответствующим instance
eahqzsr
Конкретно видимо из-за fromInteger
Cheese
Конкретно видимо из-за fromInteger
это детали реализации, к сути не относится
eahqzsr
Потому что я не могу сказать 1.5 :: Sum Float
Алексей
Да Num есть, а Rational нет
eahqzsr
Хаскель автоматически диспатчит fromX?
Cheese
Хаскель автоматически диспатчит fromX?
смотря что ты имеешь в виду
Cheese
Хаскель автоматически диспатчит fromX?
автоматически диспатчатся любые вызовы методов любых классов, можно так сказать
Ilya
Потому что я не могу сказать 1.5 :: Sum Float
потому что нет instance Fractional a => Fractional (Sum a)