A64m
непонятно, насколько хорошо у него дела обстоят с производительностью, да и вообще с работоспособностью
Ilya
А не про частичность
Ilya
Рекурсия так и определяется, кажись
Ilya
Структурное уменьшение аргумента
A64m
смешно, конечно, переживать о частичных функциях в языке с асинхронными исключениями
Aleksei (astynax)
тут я плаваю
Евгений
Но кникст говорил, что ничего лучше асинхронных исключений не придумали
A64m
я тут даже не критикую асинхронные исключения, а восприятие хаскеля как какого-то недопруфассистанта в котором о таких вещах надо серьезно беспокоиться.
A64m
потому что хаскель это язык с удобствами для написания обобщенного кода с минимальной безопасностью для того чтоб это все не разваливалось
A64m
не пруфассистант. все эти потуги в сторону "тотальности" в хаскеле - это как ФП на C++
Dmitry
Буду ковырять
A64m
по поводу тотальности length нет, она не тотальна, то, что она матчит конс и нил и аргумент у нее убывает - это не определение тотальности, а эвристика для ее проверки для строгих языков, в хаскеле такие проверки просто не верны
Aleksei (astynax)
Не движется
A64m
не совсем
A64m
в той части в которой важна "тотальность" вообще не движется
Ilya
А куда он движется
A64m
хаскель дальше движется в сторону удобства обобщенного программирования, все еще только с минимальной безопасностью без которой просто не реально было бы обобщенно программировать
Dmitry
А на эту тему есть где-то программы партии etc?
A64m
конечно, там не очень внятная граница, в конце концов и пруфассистент можно использовать для "обобщенного программирования с минимальной необходимой безопасностью" те же хаскельные дженерики прототипировали на агде со включенным тайп-ин-тайп и прочим
A64m
и для хаскеля накостылена проверка завершаемости как внешний тул
A64m
но все равно видна разница между всякими идрисами-агдами и омегами-хаскелями, просто в этом пространстве дизайнерских решений маловато точек
A64m
А на эту тему есть где-то программы партии etc?
да нету никакой программы, этож не специальный план такой, просто так вышло. хаскель повернул в сторону недопруфассистантов потому, что для DPH нормальные массивы потребовались (не шутка)
Alexander
Но кникст говорил, что ничего лучше асинхронных исключений не придумали
да иначе их костылять на каждом шагу и их поддержку в каждый тред писать и забыть о модульности
Alexander
или о зеленотредах
Евгений
Ну это не значит, что ничего лучше не придумали. Это значит всего лишь, что в хаскеле ничего лучше нету
Зигохистоморфный
а что это за такой safe? import safe SomeModule
Алексей ayaye :)
а что это за такой safe? import safe SomeModule
An import statement with the safe keyword results in a compilation error if the imported module is not trusted.
Алексей ayaye :)
https://downloads.haskell.org/~ghc/7.8.4/docs/html/users_guide/safe-haskell.html
Kirill
@qnikst а если мне под сишную либку надо делать forkProcess, то через signalProcess ртс корректно его замочит? Или есть какая-то более чудесная магия?
Alexander
ну другой магии в Linux нету
Alexander
да корректно, но смотри, там при некоторых сигналах RTS шибко быстро выходит не дампая профилировку и т.п.
Alexander
а иногда и вообще ничего не делая
Alexander
сноймановая обёртка над Process кстати прикольная
Alexander
typed-process
Alexander
советую использовать
Alexander
если не использовать все равно будешь ее переизобретать
Kirill
ну мне не чужой процесс запускать
Alexander
а да
Alexander
ну смотри
Alexander
если ты форкнешься нормально, то дальше все ок
Alexander
но если там всяких сишных либ много открытых MVar и т.п. можно успешно и не форкнуться
Kirill
а "нормально" в данном случае что?
Kirill
не-не-не
Kirill
мне шарить ничего не надо
Alexander
у тебя будут 2 инстанса программы которые будут работать разумно
Kirill
максимум String при старте передать
Alexander
ну открытые хэндл, MVar и это все
Kirill
а там уже осн. часть на сишной стороне
Alexander
процессы фоновые
Kirill
с колбаками в хацкель
Kirill
колбэки живут сами по себе
Kirill
ничего не шарят с другим процессом
Kirill
по сути можно и на 2 бинарника распилить, но лишняя пляска
Kirill
ок, спсб
Alexander
ну смотри, если пляска не очень большая, то это может быть лучше
Alexander
и кроссплатформеннр
Alexander
хотя на Винде тоже форк уже тоже есть
Kirill
ну если оно потребуется на постоянной основе, то учту конечн
Leonid 🦇
Ну надо же! https://github.com/frasertweedale/hs-jose/commit/63b7648c8436232f086246404a97114f9fc95752
IC
как называется свойство множества быть открытым или закрытым?
IC
data ????? = Open | Closed -- | Both | Neither
Ilya
А что такое закрытое? Замкнутое что ли?
IC
да
Cheese
есть свойство функции быть замкнутой в подмножестве своей области определения
Cheese
@icrbow ты об этом?
IC
нет
IC
наверно
Cheese
ещё говорят, что множество замкнуто относительно операции, но здесь операция важнее, чем множество
Ilya
Замкнутость и открытость это топологические термины
Cheese
https://ru.wikipedia.org/wiki/Замкнутое_множество
Cheese
да, есть и такая замкнутость