
Dmitry
19.07.2018
07:49:15
data FingerTree a
= EmptyT
| Single a
| Deep {-# UNPACK #-} !Int !(Digit a) (FingerTree (Node a)) !(Digit a)

Aleksey
19.07.2018
07:49:31
какой ключик нужен ещё?
https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/using-warnings.html#ghc-flag--Wincomplete-uni-patterns

Dmitry
19.07.2018
07:49:42
А мне бы 20 млрд элементов в памяти удержать

Ilya
19.07.2018
07:53:27

Google

Aleksey
19.07.2018
07:55:12
там же стоит глянуть на -Wall - в описании этого флага описано, какие ворнинги в него не включены

Alexander
19.07.2018
07:56:19

Dmitry
19.07.2018
07:56:31
Ну, видимо, так и придётся.
Просто не охота было баги плодить.

Alexander
19.07.2018
07:56:54
но это просто Sequence Vector

Dmitry
19.07.2018
07:57:15
Поясни, я не понял :)

Alexander
19.07.2018
07:57:34
Seq (Vector a) возьми за основу
добавление и удаление чанков будет быстрым
если по одному то тогда да, не прокатит

Dmitry
19.07.2018
07:58:55
Ну вот мне по одному, т.е. надо будет код писать для добавления в последний чанк и проверку на переполнение этого последнего чанка
Ну, в принципе, багов не должно быть слишком много, напишу уже.

Yuriy
19.07.2018
07:59:44
-Wincomplete-uni-patterns

Alexander
19.07.2018
08:00:36
препенд будет не очень

Google

Alexander
19.07.2018
08:00:46
если чанк не мувать

Dmitry
19.07.2018
08:01:10
Да мне только с одного конца
Т.е. только append

Ilya
19.07.2018
08:04:48

Alexander
19.07.2018
08:07:14
а, если с одного то все проще

Aleksey
19.07.2018
08:14:11

kana
19.07.2018
08:28:03

Aleksey
19.07.2018
08:28:34
я на это и давил :)

kana
19.07.2018
08:29:20

A64m
19.07.2018
08:30:20
непонятно, насколько хорошо у него дела обстоят с производительностью, да и вообще с работоспособностью

Ilya
19.07.2018
08:31:04
А не про частичность
Рекурсия так и определяется, кажись
Структурное уменьшение аргумента

kana
19.07.2018
08:32:16

A64m
19.07.2018
08:32:27
смешно, конечно, переживать о частичных функциях в языке с асинхронными исключениями

Aleksey
19.07.2018
08:32:29
тут я плаваю

Ilya
19.07.2018
08:32:47

Евгений
19.07.2018
08:34:20

Google

Евгений
19.07.2018
08:35:26
Но кникст говорил, что ничего лучше асинхронных исключений не придумали

A64m
19.07.2018
08:37:19
я тут даже не критикую асинхронные исключения, а восприятие хаскеля как какого-то недопруфассистанта в котором о таких вещах надо серьезно беспокоиться.
потому что хаскель это язык с удобствами для написания обобщенного кода с минимальной безопасностью для того чтоб это все не разваливалось
не пруфассистант. все эти потуги в сторону "тотальности" в хаскеле - это как ФП на C++

Dmitry
19.07.2018
08:44:52
Буду ковырять

A64m
19.07.2018
08:45:04
по поводу тотальности length
нет, она не тотальна, то, что она матчит конс и нил и аргумент у нее убывает - это не определение тотальности, а эвристика для ее проверки для строгих языков, в хаскеле такие проверки просто не верны

Aleksey
19.07.2018
08:46:56

Ilya
19.07.2018
08:49:24

Aleksey
19.07.2018
08:49:48
Не движется

A64m
19.07.2018
08:49:49
не совсем
в той части в которой важна "тотальность" вообще не движется

Ilya
19.07.2018
08:51:11
А куда он движется

A64m
19.07.2018
08:52:16
хаскель дальше движется в сторону удобства обобщенного программирования, все еще только с минимальной безопасностью без которой просто не реально было бы обобщенно программировать

Dmitry
19.07.2018
08:59:09
А на эту тему есть где-то программы партии etc?

A64m
19.07.2018
08:59:21
конечно, там не очень внятная граница, в конце концов и пруфассистент можно использовать для "обобщенного программирования с минимальной необходимой безопасностью" те же хаскельные дженерики прототипировали на агде со включенным тайп-ин-тайп и прочим
и для хаскеля накостылена проверка завершаемости как внешний тул
но все равно видна разница между всякими идрисами-агдами и омегами-хаскелями, просто в этом пространстве дизайнерских решений маловато точек

Alexander
19.07.2018
09:27:29

Google

Alexander
19.07.2018
09:27:33
или о зеленотредах

Евгений
19.07.2018
09:28:17
Ну это не значит, что ничего лучше не придумали. Это значит всего лишь, что в хаскеле ничего лучше нету

Denis
19.07.2018
09:39:33
а что это за такой safe?
import safe SomeModule

Алексей Ayaye :)
19.07.2018
10:13:07
https://downloads.haskell.org/~ghc/7.8.4/docs/html/users_guide/safe-haskell.html

Kirill
19.07.2018
12:00:42
@qnikst а если мне под сишную либку надо делать forkProcess, то через signalProcess ртс корректно его замочит? Или есть какая-то более чудесная магия?

Alexander
19.07.2018
12:01:30
ну другой магии в Linux нету
да корректно, но смотри, там при некоторых сигналах RTS шибко быстро выходит не дампая профилировку и т.п.
а иногда и вообще ничего не делая

Admin
ERROR: S client not available

Alexander
19.07.2018
12:02:50
сноймановая обёртка над Process кстати прикольная
typed-process
советую использовать
если не использовать все равно будешь ее переизобретать

Kirill
19.07.2018
12:03:21
ну мне не чужой процесс запускать

Alexander
19.07.2018
12:03:26
а да
ну смотри
если ты форкнешься нормально, то дальше все ок
но если там всяких сишных либ много открытых MVar и т.п. можно успешно и не форкнуться

Kirill
19.07.2018
12:04:09
а "нормально" в данном случае что?

Google

Kirill
19.07.2018
12:04:16
не-не-не
мне шарить ничего не надо

Alexander
19.07.2018
12:04:28
у тебя будут 2 инстанса программы которые будут работать разумно

Kirill
19.07.2018
12:04:33
максимум String при старте передать

Alexander
19.07.2018
12:04:44
ну открытые хэндл, MVar и это все

Kirill
19.07.2018
12:04:49
а там уже осн. часть на сишной стороне

Alexander
19.07.2018
12:04:52
процессы фоновые

Kirill
19.07.2018
12:04:55
с колбаками в хацкель
колбэки живут сами по себе
ничего не шарят с другим процессом
по сути можно и на 2 бинарника распилить, но лишняя пляска
ок, спсб

Alexander
19.07.2018
12:06:31
ну смотри, если пляска не очень большая, то это может быть лучше
и кроссплатформеннр
хотя на Винде тоже форк уже тоже есть

Kirill
19.07.2018
12:10:43
ну если оно потребуется на постоянной основе, то учту конечн

Leonid
19.07.2018
12:29:14
Ну надо же! https://github.com/frasertweedale/hs-jose/commit/63b7648c8436232f086246404a97114f9fc95752

IC
19.07.2018
12:37:17
как называется свойство множества быть открытым или закрытым?
data ????? = Open | Closed -- | Both | Neither

Ilya
19.07.2018
12:39:27
А что такое закрытое? Замкнутое что ли?

IC
19.07.2018
12:40:33
да

Yuriy
19.07.2018
12:41:31
есть свойство функции быть замкнутой в подмножестве своей области определения