Romɑn
gsomix
У вас опять бирап? :)
Romɑn
Ага
Éminence grise
Коллеги, а что более идеоматично для F# library - оборачивать Result<'a, 'b> в Result<'a, Sp<'b» Где Sp = | None | Special<'b> или все таки кидать exception
Éminence grise
Вот в расте я бы в некоторых случаях - кинул панику, но в дот нет ее нет
gsomix
Romɑn
@gsomix Самара Саратов?
gsomix
Romɑn
Ты откуда?
gsomix
Самара
gsomix
Д И А Н О Н
Romɑn
Ок
Romɑn
Я хочу после 20 к тебе
Romɑn
Августа
gsomix
Romɑn
Будет время на самарский митап?
gsomix
Romɑn
Круто
gsomix
А что ты будешь делать в Самара?
Romɑn
Ну как митап. Бирап)
Romɑn
Я целенаправленно еду к тебе)
Vasily
Нет ли стакана воды, а то так есть хочется, что переночевать негде
gsomix
Ayrat
Я хочу признаться что мне нравится Gravity Falls.
Vasily
Ну начинается
gsomix
Vasily
Стоило на бирап не пойти
Ayrat
Я посмотрел его 2 раза. До сих пор плачу что он закончился. Даже концовка Babylon 5 так не расстроила
Vasily
Даже не знаю, что тут посоветовать
Ayrat
Посмотреть 3ий раз
Ayrat
Конечно же
Vasily
Ну такое
Ayrat
И ты посмотри.
gsomix
Я хочу признаться что мне нравится Lucky ☆ Star
gsomix
Хотя нет, дальше не буду продолжать.
Éminence grise
Что такое Sp? Для чего этот тип?
Есть ощибки конкретного провайдера, например кафки или rabbit. Есть ошибки общие для них. Общие храняться в Sp<'error> = | Common1 | Common2 | Special of 'err
Ayrat
Ayrat
Надо простые вещи делать просто.
Vasily
Du с текстом ошибки и уровнем серьезности не подойдёт?
Vasily
Ну а сверху обработчик по северити
Éminence grise
У меня вроде даже некоторое недоумение началось:
module Try =
type Convert = Exception -> bool
let attempt (cvt: Convert) todo =
try
todo()
with
| _ as ex -> if(cvt(ex)) then reraise() else invalidOp "Never can be"
Так кажется проще
Éminence grise
Или даже так:
module Try =
let attempt cvt todo =
try
todo()
with
| _ as ex -> cvt(ex); reraise()
Éminence grise
А лучше так:
module Try =
let attempt cvt todo =
try
todo()
with
| _ as ex ->
match cvt(ex) with
| Some r -> r
| _ -> reraise()
Vasily
Ненене
Vasily
У cvt надо тип поставить
Éminence grise
Зачем? Nbgbcysq смt:
let cvt = function | ?: ArgumentNullException -> Some(2) | _ -> None
Vasily
А так она к obj приведется
Éminence grise
Приводиться к exn -> Option<'a>
Éminence grise
Проверил
Éminence grise
В общем чуствую я , что где то либо Result с тайп классами, либо exceptions/Мешать это нельзя
gsomix
Про что тут речь?
Vasily
Про что тут речь?
Ну компилятор тип входного значения выведет по первому вызову
Vasily
Соответственно,имеет смысл явно указать тип
Romɑn
Romɑn
@gsomix а что насчёт этих выходных?
Romɑn
Ну, ближайших?
gsomix
Шта?
gsomix
Нет, меня не будет городе. :)
Romɑn
А то на следующие у меня внезапно планы
gsomix
Romɑn
Romɑn
Я в любом случае хочу летом посетить хотя бы один город кроме москвы
Romɑn
В общем согласую с тобой время
gsomix
Ок.
Анна
Вы тут что ли мультики обсуждаете?
gsomix
Анна
У нас тут Миядзаки на белорусском в кино показывают 🙃
Romɑn
Romɑn
Лучше единственное "аниме" которое заходит
Анна
Анна
стотыщ видов тщательно прорисованных облаков
Анна
я просто уплыла
Анна
раньше не смотрела его
gsomix
Vasiliy
👌
Romɑn