
Alexander
13.08.2018
20:05:09
вот, что с закрытием не знаю
я бы сишный пруф оф концепт сделал

Kirill
13.08.2018
20:05:27

Alexander
13.08.2018
20:05:32
там и на сях все неочевидно

Google

Yura
13.08.2018
20:05:39
ну вот про event manager где посмотреть?

Kirill
13.08.2018
20:06:06

Alexander
13.08.2018
20:06:25
GHC.Event
там registerFD
это интерфейс к еполу
ну или что в вашей ос

Kirill
13.08.2018
20:07:02
на https://ogris.de/howtos/splice.html пишут
"In this case, your program either receives a SIGPIPE or, if you have blocked SIGPIPE, splice() will return -1 with errno set to EPIPE. If you want to reuse the pipe, you have to empty it by splicing to /dev/null"

Yura
13.08.2018
20:27:42
ну если splice в non blocking mode запусить, то EAGAIN будет

Alexander
13.08.2018
20:29:23
вот1 я так и говорил

Yura
13.08.2018
20:30:11
но тогда надо с EventManager парится
вот на питоне proof of concept
https://gist.github.com/NicolasT/4519146
от автора RaFT для Haskell :)

Google

Yura
13.08.2018
20:32:03
что интересно interruplible помог...
надо как recv попробовать unsafe

Alexander
13.08.2018
20:54:42
unsafe не надо

elton
14.08.2018
05:33:48
здрасьте
не подскажите, как реализовать в хаскиле функцию, которая берет лист, число n и возвращает лист листов по n элементов?
group::[a]->Int->[[a]]
group [1,4,8,8] 2=[[1,4],[8,8]]

Timofey
14.08.2018
05:46:28
Пригодятся функции drop и take. Ну и рекурсия)

Yura
14.08.2018
05:47:42

Timofey
14.08.2018
05:47:46
f xs n = take n xs : f (drop n xs) n
Плюс условие выхода из рекурсии: f [] n =[]

Aleksey
14.08.2018
05:53:23
Эй, вы решение-то готовое не давайте! Дайте время подумать :)

elton
14.08.2018
05:53:33
да я забыл про них...
спасибо

Yuriy
14.08.2018
05:54:03
товарищ же просил не подсказывать
> не подскажите...

Oleg
14.08.2018
05:54:53
Теперь придётся выдумывать ещё одно без рекурсии

Alexander
14.08.2018
06:15:15

Dmitry
14.08.2018
07:06:18
а есть еще какой-то генератор форматированного текста, но не пандок?
пандок убогий и не очень настраивается

Alexander
14.08.2018
07:06:46
тебе html to txt?

Dmitry
14.08.2018
07:08:49
ADT -> AST -> [txt, rst,markdown, etc...]
ну, примерно как pandoc, только нормальный. что бы можно было настроить ширину страницы, например
а то у него по умолчанию даже меньше 80 символов и непонятно, можно ли настроить

Google

Aleksey
14.08.2018
07:33:28
Пандок настраивается дописыванием форматтеров. Дизайн такой

Dmitry
14.08.2018
07:41:42
а ты примеры где-нибудь видел?
ну и как-то тупо его дописывать, если всё, что тебе нужно - это ширину строки поменять

Alexander
14.08.2018
07:49:50
mmark был

Aleksey
14.08.2018
07:52:02
mmark, это md->html и всё
Причём фильтрами у pandoc могут выступать просто программы, работаючеме через pipe

Dmitry
14.08.2018
07:59:49
ну представляешь через пайп теблицу переформатировать?

Aleksey
14.08.2018
08:00:37
Есть JSON-filters
AST-in-JSON -> AST-in-JSON

Dmitry
14.08.2018
08:01:14
вот это более интересно. ок, посмотрю. а это есть вообще в документации?
там она какая-то была куцая

Aleksey
14.08.2018
08:01:26
https://pandoc.org/filters.html#json-filters
Для Pandoc JSON AST есть инстансы хаскельные

Ilya
14.08.2018
08:37:04

A64m
14.08.2018
08:49:38
chunks n = unfoldr $ (\case ([], []) -> Nothing; r -> Just r) . splitAt n

elton
14.08.2018
09:58:09

Denis
14.08.2018
09:59:24
ну и жесть
все уже украдено (сделано) до нас
https://www.stackage.org/haddock/lts-12.6/split-0.2.3.3/Data-List-Split.html#v:chunksOf

Gleb
14.08.2018
10:50:46

Google

Aleksey
14.08.2018
11:10:15
И что, теперь каждый напишет свой вариант?

Ilya
14.08.2018
11:19:17

Gleb
14.08.2018
11:20:47

Ilya
14.08.2018
11:25:40
кстати, как цепочки композиций/долларов лучше записывать? В линию или как в расте?
grp n = map (map snd) . groupBy ((==) `on` (`div` n) . fst) . zip [0..]
grp n = map (map snd) .
groupBy ((==) `on` (`div` n) . fst) .
zip [0..]

Aleksey
14.08.2018
11:28:41
Нет единого мнения

Pig
14.08.2018
11:31:47
тогда уж
chunk n = map (map snd)
. groupBy ((<) `on` fst)
. zip (concat $ repeat [1..n])

Ilya
14.08.2018
11:37:23

Admin
ERROR: S client not available

Ilya
14.08.2018
11:38:02
да, это лучше, чем с div возиться

Dmitry
14.08.2018
11:38:03
Ребят, не останавливаемся! Продолжаем предлагать варианты!

Alexander
14.08.2018
11:38:26
а что?
и не выпендриваться

Ilya
14.08.2018
11:39:22

Alexander
14.08.2018
11:39:38
пакет split тоже в хаскеле

Denis
14.08.2018
11:40:05

Alexander
14.08.2018
11:40:22
ещё в линзах наверняка есть
map snd . groupBy fst . zip (replicate n True++replicate n False)
== on fst

Google

Alexander
14.08.2018
11:43:29
и cycle $ перед репликейтом

Dmitry
14.08.2018
11:46:59
Оно не то будет выделять
Ааа
От оно как

A64m
14.08.2018
11:48:57
тем временем, ушедший на хагс хлопнув дверью клайден, вернулся в пропозалы притопить против линз

Dmitry
14.08.2018
11:49:25

Alexander
14.08.2018
11:49:36
да
мне лень полный вариант копировать было

Leonid
14.08.2018
12:17:40
вот это есть где-нибудь в base?
onNothing :: Monad m => m (Maybe b) -> m b -> m b
onNothing m act = maybe act pure =<< m
а то в каждом проекте всплывает и приходится кривится и придумывать имя для модуля куда это сунуть

Aleksey
14.08.2018
12:19:48
В каком-нить Foundation есть, а в base не помню такого

Denis
14.08.2018
12:22:33

Dmitry
14.08.2018
12:22:54
http://hackage.haskell.org/package/supervisor-0.1.1.0/docs/Control-Monad-Supervisor-Session.html#v:onNothing

Leonid
14.08.2018
12:22:56

A64m
14.08.2018
12:23:21
<имя модуля в котором это должно быть>.Ext

Denis
14.08.2018
12:23:26
ну и еще
https://hackage.haskell.org/package/witherable-0.2/docs/Data-Witherable.html

Leonid
14.08.2018
12:23:39

A64m
14.08.2018
12:24:38
ну вот что первое пришло в голову - так и называть

Denis
14.08.2018
12:24:39
Control.Monad? Data.Maybe?
ну тогде Митчеловский extra
https://www.stackage.org/haddock/lts-12.6/extra-1.6.9/Control-Monad-Extra.html

Leonid
14.08.2018
12:25:56
какой же стэкедж нечитаемый
а чего на стэкедже не пишут зависимости?

Yuriy
14.08.2018
12:28:03