Ilya
21.09.2017
13:18:03
gnuplot
Alexander
21.09.2017
13:21:27
не знаю matplotlib, но если взять R и делать графики с ним, но можно много больше, чем с gnuplot
впрочем для моих задач мне хватало gnuplot
? animufag ?
21.09.2017
13:24:31
В общем то мне нужно было вертикальные/горизонтальные бары рисовать. Сгруппированные, у групп должны быть заголовки
Google
? animufag ?
21.09.2017
13:24:32
Я это в итоге делал через генерацию свг
Довольно гибкий инструмент
Aleksey
21.09.2017
13:26:44
mpl это далеко не только бары
Рисовать такое руками в SVG - не хотеть
Denis
21.09.2017
13:28:27
Aleksey
21.09.2017
13:29:17
"Julia - течёт" (это практически всё, что я про неё знаю)
Alexander
21.09.2017
13:29:22
не вижу вот вообще причин предпочитать julia
в R толпа туториалов и библиотек
а если мне они не нужны, то я возьму haskell
Ilya
21.09.2017
13:30:26
Google
Ilya
21.09.2017
13:30:27
Aleksey
21.09.2017
13:30:58
Alexander
21.09.2017
13:31:17
landscape кстати у gnuplot есть, там убиться можно все делать
Ilya
21.09.2017
13:32:11
но в последнее время я сам пересел на mpl с gnuplot... удобно обрабатывать данные и тут же их отображать, и всё это в одном скрипте
Alexander
21.09.2017
13:33:45
я с гнуплотом страдал когда хотел 3д и что-то сложное
пока переупакуешь данные как ему надо
плюс там нету всякой доброты типа гистограммок и т.п. быстро сделать (или я не нашёл)
Denis
21.09.2017
13:56:01
https://github.com/wireapp/wire-server
Vasiliy
21.09.2017
14:32:06
кароче, я ничего не понимаю https://pastebin.com/AnKzEqfq
есть у vinyl у Rec инстанс моноида https://hackage.haskell.org/package/vinyl-0.6.0/docs/Data-Vinyl-Core.html#t:Rec
там сказано, что если f a - моноид, то и Rec f '[a] моноид
Denis
21.09.2017
14:34:46
Vasiliy
21.09.2017
14:35:00
я в качестве функтора подсовываю [], который делает моноидом всё, что видит вокруг, но компилятор согласен с тем, что Rec [] '[Int, String] - моноид, а для любого Rec [] m он отказывается в это верить
Denis
21.09.2017
14:36:46
а что если plusa :: Monoid m => Rec [] m -> Rec [] m -> Rec [] m?
Vasiliy
21.09.2017
14:36:47
там в документации есть какие-то функции для констрейнтов, может, их надо применить...
нэ, у m кайнд [*]
блин, а решение, оказывается, самое наитупейшее - просто прописать в констрейнт plusa то, что ему нужно - Monoid (Rec [] m)
я с двух часов долбался...
Google
Denis
21.09.2017
14:48:47
Vasiliy
21.09.2017
14:49:42
у меня есть список рекордов, а мне нужен рекорд списков
эдакий sequenceA
Denis
21.09.2017
14:50:18
Vasiliy
21.09.2017
14:51:15
ну да, но в данном случае решение получилось другое - foldMap (rmap (Compose.(:[])))
жуть какая :D
kana
21.09.2017
15:22:55
Как часто и с какой охотой кто использует линзы? Мне по некоторым причинам не хочется их использовать, и тащить TH тоже
Vasiliy
21.09.2017
15:24:28
можно взять microlens, например, оно гораздо легче
я стараюсь использовать, где получается
Hot
21.09.2017
15:27:37
Ребят, объясните плз, что ещё за линзы? Или ссылкой в меня киньте.
Vasiliy
21.09.2017
15:28:17
https://hackage.haskell.org/package/lens
Aleksey
21.09.2017
15:29:04
Широко используем. И не только простые линзы - траверсалы, призмы, вот это всё
Бояться линз - жить грустно
Микролинзы, увы, только простую оптику умеют, а самый смак в непростой
Да и писать линзы руками лениво, так что и с микролинзами будет TH
Alexander
21.09.2017
15:53:21
в микролинзах нету травераблов же?
он вообще бесполезен
Aleksey
21.09.2017
16:09:43
Зато можно притащить в либу, где нужны только сеттеры/геттеры и не хочется нагружать толстыми lens пользователей. Впрочем, траверсаблы часто нужны, если уж линзы пользуешь
Denis
21.09.2017
16:10:31
Aleksey
21.09.2017
16:10:59
Пример чего?
Google
Denis
21.09.2017
16:11:30
Aleksey
21.09.2017
16:12:34
Э... да хоть в подрекорды сходить, если подрекордов - список.
Denis
21.09.2017
16:13:30
Aleksey
21.09.2017
16:15:19
User ^.. uFriends . traversed . uPets . _Cat . name
Vasiliy
21.09.2017
16:16:08
λ> [(1, 2), (3, 4)] & each._1 %~ show
[("1",2),("3",4)]
Aleksey
21.09.2017
16:16:49
Vasiliy
21.09.2017
16:19:20
вот ещё в коде нашёл findIndexOf (clients.itraversed) (elemOf _3 regCode) db
находит в базе id клиента, у которого в третьем поле такой-то regCode
вот ещё побольше пример https://www.schoolofhaskell.com/user/tel/lens-aeson-traversals-prisms
Aleksey
21.09.2017
16:36:05
Вот да, обработка XML/JSON с траверсалами без полной распаковки в типы - и даже без описания полной схемы!
Вот это отличный пример полезности оптики
kana
21.09.2017
16:51:38
Как
map f . map g == map (f . g)
Так и
p &&. q = \x -> p x && q x
filter p . filter q == filter (p &&. q)
Этот шаблон можно как-то обобщить.
Эндоморфизмы - моноид по композиции, предикаты - по энду
Yuriy
21.09.2017
16:54:09
Aleksey
21.09.2017
16:55:39
Denis
21.09.2017
17:19:34
Leonid
21.09.2017
19:48:47
А чего сегодня ничего не пишите?
Anatolii
21.09.2017
19:49:52
Надо придумать наброс
Vasiliy
21.09.2017
20:07:19
у меня есть вопросик тогда
в чём разница между (C1 a, C2 b) => a -> b -> c и C1 a => C2 b => a -> b -> c?
kana
21.09.2017
20:12:02
Даже не знал про то, что можно писать как во втором кейсе)
Google
Alexander
21.09.2017
20:13:16
нету разницы
Vasiliy
21.09.2017
20:14:18
> data F where F :: Show a => Show b => a -> b -> F
<interactive>:26:14: error:
• Data constructor ‘F’ returns type ‘Show b => a -> b -> F’
instead of an instance of its parent type ‘F’
• In the definition of data constructor ‘F’
In the data type declaration for ‘F’
Alexander
21.09.2017
20:24:13
ну это одно и тоже значит, а то что в GADT синтаксисе парсер другой это другое дело
Vasiliy
21.09.2017
20:26:35
ага, я понял, спасибо
я думал, может, какие-то глубинные особенности GADTs, а это парсер...
Index
21.09.2017
21:57:35
я бы это как feature request зарепортил
хотя и граничит с багом, но все-таки a => b => ... это не Haskell98, и в мануале не упоминается (вроде). Хотя очень логичная и правильная конструкция.
Багом кажется хотя б асимметрия — если уж отвергать, то и в функциях, и в GADT-ах, а иначе принимать и не жаловаться в обоих местах.
Alexander
21.09.2017
22:19:59
мне кажется это какой-то побочный эффект что в функциях работает
и.е. это не планировали, само получилось
Index
21.09.2017
23:52:31
Ну да.
Хотя это ж каррирование в чистом виде.
Pig
22.09.2017
05:21:31
Очень приятная нотация, жаль в Idris не поддерживается
Дмитрий
22.09.2017
06:33:05
Да, то что в функциях работает, а в GDTs нет, однозначно выглядит как баг, мне аж самому понравилось как выглядит такая нотация. Не удержался и попробовал. Действительно жаль, что GDTs такую конструкцию не признают :(
adam
22.09.2017
06:46:29
Евгений
22.09.2017
07:01:40
Reworr
22.09.2017
07:56:08
https://vk.com/cat_programming?w=wall-63708206_248309
Dmitry
22.09.2017
08:03:54
всем привет!
Андрей Мельников подал нам хорошую идею, и я решил вынести в массы
мы сделаем на fby(by) секцию lightning-докладов, где-то по 10 минут на доклад
скорее всего таким докладчикам дадим бесплатный билет на конфу, но это пока еще не точно
Dmitry
22.09.2017
08:05:10
@Reworr можно пояснить про аддитивные технологии в течение двух минут?