Aminion
Фича: пока меньше или равно - генерит, как станет больше - останавливается.
И как заменеджить это лучше, кроме как предварительной проверкой инкримента?
Влод
выразительности суммы типов недостаточно?
分解物質
ну так обрабатывайте, вы ж в IO, никто не мешает
я к тому что это не кейс для броска ексцепшена
A64m
вполне кейс
Alexander
@A64m_qb0 а для такого Applicative m => Maybe a -> e -> ExceptT e m a в линзах что есть?
A64m
так сразу не могу сказать
Leonid 🦇
tryIO
分解物質
вполне кейс
почему? разве не правильнее ошибки держать в результате и заставлять их обрабатывать?
分解物質
в хаскеле для этого всё есть под рукой
A64m
нет, нету
Влод
да поясни
A64m
в хаскеле проверяемые экспешены невозможны
Alexander
было бы удобно в типе видеть что может произойти
везде может произойти вообще что угодн
Alexander
чего там выше очередные генерогенные рекорды?
Alexander
любое значение может содержать любое исключение /thread
A64m
да поясни
https://simonmar.github.io/posts/2017-01-24-asynchronous-exceptions.html
Alexander
+ асинхронные ещё
分解物質
в хаскеле проверяемые экспешены невозможны
тоесть ексцепшены в такой ситуации это канонично и не рассматривается как изъян?
Alexander
которые прилетуют в любой момент
Alexander
а ещё Either пока тормозит
Alexander
это вам не раст
Alexander
unboxed sum types пока не довезли
A64m
тоесть ексцепшены в такой ситуации это канонично и не рассматривается как изъян?
да, это нормально, исключения это то что предполагается нормальным обрабатывать, это не error, который значит что программа неправильно написана
кана
чего там выше очередные генерогенные рекорды?
пытаюсь generic осилить, но чет это слишком сложно
Denis
И как заменеджить это лучше, кроме как предварительной проверкой инкримента?
А чем плох бесконечный список в ленивом языке? И если-таки плох для какой-то предметной области, то откуда там нулевой инкремент берется?
Влод
ну окей конкаренси совсем боль. ну вот в сишке например возвращается null из fopen почему в хаскеле обязательно должен быть эксепшен
Влод
я просто не понимаю этого фатализма резкого
Влод
что мол спросили вполне конкретный вопрос, а вы такие резко в крайности ушли
Влод
мол мы ничего с этим поделать не можем - жизнь опасна и жестока
A64m
потому что уже в IO, в чистом коде есть смысл не исключения использовать, в IO уже нет, они просто удобнее будут
Alexander
я вроде написал почему в haskell невозможно ловить все исключения
Aminion
А чем плох бесконечный список в ленивом языке? И если-таки плох для какой-то предметной области, то откуда там нулевой инкремент берется?
Да ничем, но вот >Когда начало и конец интервала совпадают площадь должна равняться нулю. интегралы - интегральчики
Alexander
более того нельзя перечислить все типы ошибок которые могут вернуться
Alexander
2 раза написал минимум
Alexander
но похоже это никому не интересно, т.к. мне не отвечали
Влод
ну ладно. я первый свернул тему не туда)
Alexander
расширяемые исключения обычно удобнее чем Either
Alexander
хотя я бы честно хотел видеть какие-то аннотации
Alexander
типа функция может бросить вот это вот, и может что-то ещё
кана
я так понял, если есть class C a b | a -> b type family F a b :: Constraint то сделать instance F a b => C a b не получится, так как в F нет некой выводимости b из a (lhs type 'a' do not jointly determine rhs type ‘b’)
Alexander
просто с EItherT все быстро печально становится
Alexander
и толку нету все равно
分解物質
експириенс с обработкой ексцепшенов в хаскеле это одна из причин быстрого падения моей воодушевлённости к хаскелю после прочтения LYAH и написания первых програм
Alexander
а чего их ловить то?
кана
да вроде как везде: в эффектном коде try/catch, в чистом either/except со своими try/catch
Denis
Да ничем, но вот >Когда начало и конец интервала совпадают площадь должна равняться нулю. интегралы - интегральчики
Это, в общем случае, довольно большая натяжка: выводить поведение в предельных случаях для дискретных конструкций из континуальных или наоборот.
分解物質
а чего их ловить то?
1. когда "исключительная ситуация" это ожидаемая ситуация в моей програме 2. показать нормальное сообщение об ошибке вместо хаскелевского стактрейса
Alexander
а смысле в чем сложность с этим?
分解物質
у меня с catch получалось дико уродливая конструкция которую я ещё долго соображал как сделать
Влод
ну это как спрашивать в чём проблема писать без типов ты не знаешь наверняка захендлился эксепшен где-то во вложенных функциях или нет
Влод
(хотя лол - я сам же за сегодня дважды написал Left e -> error $ show e)
Alexander
с интегралами, почему не (b-a)/n?
Alexander
чтобы ошибку то не накапливать
Alexander
и потом [0..n] и все
Alexander
ну или (b-a)/delta
Alexander
если хочется так по немногу, то проще уже врапперы написать конечно
кана
или так
кана
осилил генерик, красота в прод такое тащить нельзя конечно https://gist.github.com/kana-sama/b7f8a2a405061260a2ee7beafbd59e32
Влод
ну или (b-a)/delta
кажется это численная производная ну и особо не понял про накопление ошибки точнее не помню как оно оценивается вроде деление всё равно даст гораздо больше ошибки (ну это интуитивно)
Alexander
2 варианта, или фиксированная дельта, тогда делим конец - начало на дельту получаем число шагов
Alexander
или фиксированное число шагов, тогда длину шага считаем
Alexander
каждая операция с IEEE будет накапливать ошибку, если не использовать спец схемы
Alexander
поэтому a+d+d+d+d....
Alexander
будет не тоже самое что a+d*n, для какого-то n
Alexander
@vlastachu ^
кана
как правильно хендлить такой кейс? моя ситуация: есть тип, в который можно сетать, нужно научится сетать в (a :*: b) в нужную ветку в зависимости от того, в какую можно сетать
Alexander
@kana_sama что если оба?
Alexander
ветки
кана
предположительно в обе не получится, но не уверен, что компилятору можно об этом сказать