@haskellru

Страница 1027 из 1551
A64m
28.03.2018
18:06:50
да поясни
https://simonmar.github.io/posts/2017-01-24-asynchronous-exceptions.html

Alexander
28.03.2018
18:07:00
+ асинхронные ещё

分解物質
28.03.2018
18:07:02
в хаскеле проверяемые экспешены невозможны
тоесть ексцепшены в такой ситуации это канонично и не рассматривается как изъян?

Alexander
28.03.2018
18:07:08
которые прилетуют в любой момент

Google
Alexander
28.03.2018
18:07:24
а ещё Either пока тормозит

это вам не раст

unboxed sum types пока не довезли

A64m
28.03.2018
18:07:51
тоесть ексцепшены в такой ситуации это канонично и не рассматривается как изъян?
да, это нормально, исключения это то что предполагается нормальным обрабатывать, это не error, который значит что программа неправильно написана

kana
28.03.2018
18:08:04
чего там выше очередные генерогенные рекорды?
пытаюсь generic осилить, но чет это слишком сложно

Denis
28.03.2018
18:09:13
И как заменеджить это лучше, кроме как предварительной проверкой инкримента?
А чем плох бесконечный список в ленивом языке? И если-таки плох для какой-то предметной области, то откуда там нулевой инкремент берется?

分解物質
28.03.2018
18:09:27
? animufag ?
28.03.2018
18:11:00
ну окей конкаренси совсем боль. ну вот в сишке например возвращается null из fopen почему в хаскеле обязательно должен быть эксепшен

я просто не понимаю этого фатализма резкого

что мол спросили вполне конкретный вопрос, а вы такие резко в крайности ушли

мол мы ничего с этим поделать не можем - жизнь опасна и жестока

A64m
28.03.2018
18:12:09
потому что уже в IO, в чистом коде есть смысл не исключения использовать, в IO уже нет, они просто удобнее будут

Alexander
28.03.2018
18:12:18
я вроде написал почему в haskell невозможно ловить все исключения

Google
Aminion
28.03.2018
18:12:26
А чем плох бесконечный список в ленивом языке? И если-таки плох для какой-то предметной области, то откуда там нулевой инкремент берется?
Да ничем, но вот >Когда начало и конец интервала совпадают площадь должна равняться нулю. интегралы - интегральчики

Alexander
28.03.2018
18:12:30
более того нельзя перечислить все типы ошибок которые могут вернуться

2 раза написал минимум

но похоже это никому не интересно, т.к. мне не отвечали

? animufag ?
28.03.2018
18:13:15
ну ладно. я первый свернул тему не туда)

Alexander
28.03.2018
18:13:16
расширяемые исключения обычно удобнее чем Either

хотя я бы честно хотел видеть какие-то аннотации

типа функция может бросить вот это вот, и может что-то ещё

kana
28.03.2018
18:14:18
я так понял, если есть 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
28.03.2018
18:14:56
просто с EItherT все быстро печально становится

и толку нету все равно

分解物質
28.03.2018
18:15:28
експириенс с обработкой ексцепшенов в хаскеле это одна из причин быстрого падения моей воодушевлённости к хаскелю после прочтения LYAH и написания первых програм

Alexander
28.03.2018
18:16:16
а чего их ловить то?

kana
28.03.2018
18:16:44
да вроде как везде: в эффектном коде try/catch, в чистом either/except со своими try/catch

Denis
28.03.2018
18:19:38
Да ничем, но вот >Когда начало и конец интервала совпадают площадь должна равняться нулю. интегралы - интегральчики
Это, в общем случае, довольно большая натяжка: выводить поведение в предельных случаях для дискретных конструкций из континуальных или наоборот.

分解物質
28.03.2018
18:20:42
а чего их ловить то?
1. когда "исключительная ситуация" это ожидаемая ситуация в моей програме 2. показать нормальное сообщение об ошибке вместо хаскелевского стактрейса

Alexander
28.03.2018
18:21:00
а смысле в чем сложность с этим?

分解物質
28.03.2018
18:23:10
у меня с catch получалось дико уродливая конструкция которую я ещё долго соображал как сделать

? animufag ?
28.03.2018
18:23:11
ну это как спрашивать в чём проблема писать без типов ты не знаешь наверняка захендлился эксепшен где-то во вложенных функциях или нет

Google
? animufag ?
28.03.2018
18:25:39
(хотя лол - я сам же за сегодня дважды написал Left e -> error $ show e)

? animufag ?
28.03.2018
18:30:15
kana
28.03.2018
18:41:27
Alexander
28.03.2018
18:45:38
с интегралами, почему не (b-a)/n?

чтобы ошибку то не накапливать

и потом [0..n] и все

Alexander
28.03.2018
18:46:13
ну или (b-a)/delta

если хочется так по немногу, то проще уже врапперы написать конечно

kana
28.03.2018
18:49:24




? animufag ?
28.03.2018
19:55:11
ну или (b-a)/delta
кажется это численная производная ну и особо не понял про накопление ошибки точнее не помню как оно оценивается вроде деление всё равно даст гораздо больше ошибки (ну это интуитивно)

Alexander
28.03.2018
19:56:00
2 варианта, или фиксированная дельта, тогда делим конец - начало на дельту получаем число шагов

или фиксированное число шагов, тогда длину шага считаем

каждая операция с IEEE будет накапливать ошибку, если не использовать спец схемы

поэтому a+d+d+d+d....

будет не тоже самое что a+d*n, для какого-то n

Google
Alexander
28.03.2018
19:57:06
@vlastachu ^

kana
28.03.2018
20:13:05


Alexander
28.03.2018
20:14:55
@kana_sama что если оба?

ветки

kana
28.03.2018
20:15:30
предположительно в обе не получится, но не уверен, что компилятору можно об этом сказать

Alexander
28.03.2018
20:16:08
вообще OVERLAPPABLE + {-# OVERLAPPING #-}

с некоторой долей олегинга можно наверное сказать

доп параметр дать + фундеп





@vlastachu ^

Alex
28.03.2018
20:32:56
Здравствуйте

Пытаюсь разобраться с сервантом

Подскажите пожалуйста

Что означают вот эти две строки

api :: Proxy Api api = Proxy

Denis
28.03.2018
20:34:25
тайп левел магию)

kana
28.03.2018
20:37:06
api :: Proxy Api api = Proxy
data Proxy (a :: k) = Proxy тут Proxy-тип - конструктор типа с фантомным аргументом-типом любого каинда по сути своей api - просто Proxy-значение с типом-фантомом Api нужен для того, чтобы на термлевеле контролировать передачу чего-то на тайплевел (в данном случае Api) idP :: Proxy a -> a -> a idP Proxy x = x x :: _ -- will be Int x = idP (Proxy :: Proxy Int) 1 stringProxy :: Proxy String stringProxy = Proxy y :: _ -- String y = idP stringProxy "123" z = idP stringProxy 1 -- type error, String /= Int (or no Num String)



Google
Anton
28.03.2018
20:47:02
А это случайно не Geometric Numerical Integration?

Alex
28.03.2018
20:48:02
А что такое каинд?

Denis
28.03.2018
20:48:37
А что такое каинд?
тип типа, а вооще есть чатик для начинающих

Alex
28.03.2018
20:49:25
Вроде же писали что сюда можно задавать подобные вопросы

Anton
28.03.2018
20:51:01
забавно через столько лет встретить снова в хаскель чате )

Alexander
28.03.2018
20:51:26
тип типа, а вооще есть чатик для начинающих
НЕТУ ЧАТИКА ДЛЯ НАЧИНАЮЩИХ!!!!1 азаза

kana
28.03.2018
20:52:08
ЕСТЬ @haskell_learn

Alexander
28.03.2018
20:52:10
забавно через столько лет встретить снова в хаскель чате )
забавно, у меня со времён универа лежит, классная книга, жалею что лишь слегка осилил

ЕСТЬ @haskell_learn
хватит пиарить вредные вещи

kana
28.03.2018
20:52:39
что за кибербуллинг чатов

Denis
28.03.2018
20:52:44
вообще смешно как-то работает

тут всех гонят в один

Alexander
28.03.2018
20:52:48
@al_bl https://wiki.haskell.org/Kind

Denis
28.03.2018
20:52:52
а там всех гонят в другой

мол, эта тема не для начинающих

Alexander
28.03.2018
20:53:24
@al_bl если после прочтения будут вопросы, то можно попытаться по русски объяснить:)

я уже писал почему я считаю разделение чятиков очень вредной вещью

уже один gitter так поломали

Denis
28.03.2018
20:54:37
сепаратисты

kana
28.03.2018
20:54:53
А что такое каинд?
вот есть у нас терм 2, он имеет тип Int эта же логика переносится на уровень выше: есть у нас тип Int, он имеет каинд Type есть у нас терм-функция succ, которая принимает терм типа Int и отдает терм типа Int, то есть succ :: Int -> Int succ 2 :: Int эта же логика переносится на уровень выше: если конструкттор типа Maybe, который принимает тип каинда Type и отдает тип каинда Type, то есть Maybe :: Type -> Type Maybe Int :: Type есть функция $, которая принимает функцию типа (a -> b) и значение типа a, отдает значение типа b ($) :: (a -> b) -> a -> b f $ x = f x succ $ 2 == 3 есть тип $, который принимает конструктор типов (Type -> Type) и тип Type и отдает тип Type ($) :: (Type -> Type) -> Type -> Type type f $ x = f x Maybe $ Int == Maybe Int 1 :: Int :: Type не все типы имеют каинд Type или (Type -> k), где k - один из этих двух

Страница 1027 из 1551