Size: a a a

2020 June 07

p

polunin.ai in rust_offtopic
Doge Shibu
Ну это неправильно, потому что вместо Either, тут может быть и IO, и какое-нибудь ZIO
а это F<A> где F: Functor ?
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
а это F<A> где F: Functor ?
Где F : ApplicativeError<*, MyError>
источник

DS

Doge Shibu in rust_offtopic
Где ApplicativeError - это Applicative с добавленным методами для выброса и обработки ошибок
источник

p

polunin.ai in rust_offtopic
почему тогда F а не A?
источник

DS

Doge Shibu in rust_offtopic
polunin.ai
почему тогда F а не A?
Потому что принято первый параметр с дыркой назвать в скале как F.

В хаскеле для этого обычно m используют
источник

Т8

Т-34 85 in rust_offtopic
Emmanuel Goldstein
Какой тип у этой функции?
тип будет по названию типа делегата. А по его сигнатуре можно понять, какие он кидает эксепшины. Да, если тебе нужно другой эксепшин прокинуть, то тебе этот тип делегата не подойдёт

public delegate int DelegateType () throws ErrorType1, ErrorType2;

public int g(DelegateType  f) throws ErrorType1, ErrorType2
{
   return f();
}
источник

EG

Emmanuel Goldstein in rust_offtopic
Т-34 85
тип будет по названию типа делегата. А по его сигнатуре можно понять, какие он кидает эксепшины. Да, если тебе нужно другой эксепшин прокинуть, то тебе этот тип делегата не подойдёт

public delegate int DelegateType () throws ErrorType1, ErrorType2;

public int g(DelegateType  f) throws ErrorType1, ErrorType2
{
   return f();
}
Нет, подожди
источник

Т8

Т-34 85 in rust_offtopic
короче, надо смотреть на тип делегата
источник

EG

Emmanuel Goldstein in rust_offtopic
У меня функция ничего не знает про тип делегата
источник

Т8

Т-34 85 in rust_offtopic
на его сигнатуру
источник

Т8

Т-34 85 in rust_offtopic
Emmanuel Goldstein
У меня функция ничего не знает про тип делегата
а как тогда она его примет?
источник

EG

Emmanuel Goldstein in rust_offtopic
В Rust это выражается так:
fn g<T>(f: impl FnOnce() -> T) -> T {
   f()
}
источник

EG

Emmanuel Goldstein in rust_offtopic
Потому что эксепшнов нет
источник

Т8

Т-34 85 in rust_offtopic
у нас же не динамическая типизация
источник

EG

Emmanuel Goldstein in rust_offtopic
Т-34 85
а как тогда она его примет?
Ну, я знаю, что это функция. Я хочу быть абстрактным относительно списка её эксепшнов
источник

EG

Emmanuel Goldstein in rust_offtopic
Мне правда пофиг, я не перехватываю ни один из них.
источник

EG

Emmanuel Goldstein in rust_offtopic
источник

A

Aleksandr Khristenko in rust_offtopic
Stanislav Popov
anyhow же
Обрабатывать конкретную ошибку с ним потом не особо удобно.
источник
2020 June 08

OA

Oleg Andreev in rust_offtopic
Т-34 85
это самое удобное, что ты видел? Невзирая на применимость в системном
Самое удобное - это сферические монады в вакууме.
источник

Т8

Т-34 85 in rust_offtopic
Emmanuel Goldstein
Ну, я знаю, что это функция. Я хочу быть абстрактным относительно списка её эксепшнов
к сожалению, в вале нельзя делать ни дженерик делегаты, ни вешать констрейнты на параметры. От делегата не отнаследуешься, от errordomain -тоже. Так что придётся принимать делегат определённого типа, чтобы прокинуть определённого типа исключения
источник