
Yuriy
04.07.2018
09:37:47

Aleksey
04.07.2018
09:38:15
хмм. А "включить для репозитория" нельзя?

Yuriy
04.07.2018
09:38:48
правда, из-за пробелов могут быть проблемы с автоматическим слиянием, но редко

Google

Yuriy
04.07.2018
09:43:32

Саня
04.07.2018
10:49:19
Привет, подскажите, делаю запрос в бд на удаление таким образом:
con <- liftIO conn
_ <- liftIO $ delTodoItem con
where
delTodoItem :: Connection -> IO [TodoItem]
delTodoItem c = query_ c "DELETE FROM todo"
удаление происходит, но при этом вылетает <interactive>: QueryError {qeMessage = "query resulted in a command response", qeQuery = "DELETE FROM todo"}
и дальше ниче не работает, что-то в запросе не так или в чем дело?

Pineapple
04.07.2018
10:50:25
Если пакет whateversqk-simple, то наверное нужен. execute, а не query

Саня
04.07.2018
10:51:03
Я использую postgresql-simple

Aleksey
04.07.2018
10:51:22
query что-то выбирает из БД и возвращает. DELETE, это команда
нужно делать execute (или даже execute_)

Саня
04.07.2018
10:55:25
Да, точно,а что дает _ ? до этого без него пробовал и не срабобтало

Aleksey
04.07.2018
10:57:01
В доке всё написано
> A version of execute that does not perform query substitution.
"DELETE FROM todo" как раз без параметров

Саня
04.07.2018
10:58:40
недогледел, спасибо)

Yuriy
04.07.2018
11:30:21
кроме того, "DELETE FROM todo" вряд ли возвращает [TodoItem]

Саня
04.07.2018
11:38:15
да, это тоже заметил уже, исправил)

Google

Aleksey
04.07.2018
12:33:16
Как мне из призмы сделать Getter с Maybe?
Prism' s a -> Getter s (Maybe a)

Index
04.07.2018
12:34:50
to (preview prsm)

Aleksey
04.07.2018
12:39:42
хмм
А Getting случайно не обобщит мне Getter s (Maybe a) и Prism' s a?

Yuriy
04.07.2018
12:57:16

Index
04.07.2018
13:15:22
pre - неплохо
preview = view . pre и to . view это почти id, то to . preview = pre
можно просто to . view убрать лишние из моего варианта и получить pre

Aleksey
04.07.2018
13:24:52
Оставил pre, всем спасибо!

Ilya
04.07.2018
16:37:27
На степике есть задача про конкатенацию контейнеров с нечетным числом элементов. Помогите найти придумать тест, на котором оно валится с 'Runtime error main: out of memory' в их системе, а то на моих локальных тестах всё ок :(
P.S. Решение мне кидать не надо, хочу сам ошибку найти. Тем более, что одно рабочее решение у меня есть, сейчас просто решаю другим способом.
Бесконечные контейнеры тоже пробовал, но видимо недостаточно бесконечные

Aleksey
04.07.2018
16:39:13
при паттернматчинге лишнее матчится, поэтому при некоторых бесконечных последовательностях получается перерасход памяти

Ilya
04.07.2018
16:39:59
ну вот мне тест бы конкретный, а то устал уже в код вглядываться

Aleksey
04.07.2018
16:40:02
Есть в новичковом чате разбор ровно этого задания. Но там есть куски решения, так что осторожнее :)

Ilya
04.07.2018
16:40:26
да разбор нафиг, тем более что я его решил уже по-другому (не через [])

Aleksey
04.07.2018
16:41:05
Там тоже "не через"

Ilya
04.07.2018
16:41:45
я на таких тестировал
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))
и кажется, что всё нормально работает, т.е. продуктивно

Google

Aleksey
04.07.2018
16:42:30
Про конкретные ничего сказать не могу, мы само решение обсуждали, а не тесты

Ilya
04.07.2018
16:43:08
да там тривиальное решение
я как раз решил потом сделать нетривиально, через введение доп. типа "контейнер с чётным числом элементов", и вот это решение уже валится
мне оно показалось красивее, хотя и многословнее

Oleg
05.07.2018
04:55:58
Скажите, а с Quantified Constraints эта пачка всё ещё будет нужна?
http://hackage.haskell.org/package/base-4.11.1.0/docs/Data-Functor-Classes.html#g:2
@A64m_qb0

Index
05.07.2018
07:01:45
Нет

Oleg
05.07.2018
07:02:26
Так и думал, спс

Yuriy
05.07.2018
09:08:36
в Гиттере спрашивают
> Всем привет! Вопрос к знатокам eventlog: можно через него визуализировать на что уходит память? Как это сделать? :)
> В мануале написано, что heap profiling туда события эмитит, но как потом посмотреть что происходило?
> hp2ps мне не помог - "samples out of sequence" даже если компилировал без -threading.
https://gitter.im/ruHaskell/forall

Kirill
05.07.2018
09:32:32
@qnikst вы вроде такое делали про память через eventlog, ничего в паблик не попало?

Слава
05.07.2018
11:08:10

Aleksey
05.07.2018
11:08:46
Может, но в том примере это не требовалось

Andrei
05.07.2018
11:24:25

Alexander
05.07.2018
13:55:36
полноценного решения у нас не было

Kirill
05.07.2018
15:14:43
а что тыб посчитал полноценным решением в данном случае?

Alexander
05.07.2018
15:21:48
либу, которую можно прицепить к своей программе и получить данные в машиночитаьельном виде

Kirill
05.07.2018
15:27:32
прям вообще с минимум телодвижений? былоб круто

Alexander
05.07.2018
15:28:36
но я не знаю как такое делать правильно

Google

Vyacheslav
05.07.2018
20:43:48
А подскажите где хорошего почитать про стримы и около того?

Yuriy
05.07.2018
20:48:28
про кондуиты — статьи Сноймана на fpcomplete
у пайпов есть модуль Pipes.Tutorial
господа, подскажите, есть ли имя у either id id?

kana
05.07.2018
20:52:04
fromEither говорит хугл

Yuriy
05.07.2018
20:56:30
о, возьму id ||| id, если захочу запутать читателя

A64m
05.07.2018
21:20:26

Vyacheslav
05.07.2018
21:23:52
Это я нашел

Admin
ERROR: S client not available

A64m
05.07.2018
21:24:35
киселева еще можно почитать

Vyacheslav
05.07.2018
22:03:53
думал есть что-то побольше

? animufag ?
06.07.2018
00:03:37
Не думал что концепт настолько сложный что нужно читать киселева

shadowjack
06.07.2018
07:51:14
Почему я могу сказать 1 :: Sum Int но не могу сказать True :: All?

Ilya
06.07.2018
07:55:30
Потому что численные литералы перегружены
Общий тип 1 -- Num a => a
А True -- просто конструктор

shadowjack
06.07.2018
08:50:32
И как это помогает из Num сделать Sum Int (не Int!)?

Yuriy
06.07.2018
08:52:02
существует instance Num (Sum a), что позволяет Sum выглядеть и вести себя как число

Google

shadowjack
06.07.2018
09:06:16
Нет понятно что Sum ведёт себя как число. За счёт чего я могу Num привести к Sum Int?

Yuriy
06.07.2018
09:07:42
за счёт instance

Pineapple
06.07.2018
09:07:56
Num — класс типов, Sum Int — тип. У него есть инстанс Num

Yuriy
06.07.2018
09:08:47
1 :: Num a => a требует предоставить ей любой a, для которого выполняется Num a

Евгений
06.07.2018
09:09:10
Если выражаться "обыкновенным" языком, то Num это интерфейс, а Sum Int тип. Мы можем использовать 28, 45, прочие цифровые литералы в качестве любого типа, реализующего интерфейс Num

Yuriy
06.07.2018
09:10:07
для Sum b выполняется Num (Sum b), что декларируется соответствующим instance

shadowjack
06.07.2018
09:11:00
Конкретно видимо из-за fromInteger

Yuriy
06.07.2018
09:12:20

shadowjack
06.07.2018
09:12:37
Потому что я не могу сказать 1.5 :: Sum Float

Pineapple
06.07.2018
09:14:49
Да Num есть, а Rational нет

shadowjack
06.07.2018
09:16:08
Хаскель автоматически диспатчит fromX?

Yuriy
06.07.2018
09:25:25

Ilya
06.07.2018
09:28:10
Кстати, почему?
точно так же как 1 -- перегруженный числовой литерал, который может быть приведен к любому типу с инстансом Num, 1.5 -- это перегруженный дробный (`Fractional`) литерал, который, в свою очередь может быть приведен к любому типа, реализующему Fractional
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE StandaloneDeriving #-}
import Data.Monoid
deriving instance Fractional a => Fractional (Sum a)
> 1.5 :: Sum Float
Sum {getSum = 1.5}

Yuriy
06.07.2018
09:37:31

Pineapple
06.07.2018
09:40:46
Они выполняются приближённо

Ilya
06.07.2018
09:40:47
я подумал об этом, но вроде бы это тут никак не влияет