Size: a a a

2021 April 23

В

Вячеслав in pro.net
это кстати меня тоже удивляет
источник

AH

Ayrat Hudaygulov in pro.net
Туда впихнули адскую сигнатуру
Task<T> -> T
при том что входящий таск может быть Faulted и ты дальше сам ябись!
источник

В

Вячеслав in pro.net
видимо те же придумывали Select вместо Map
источник

В

Вячеслав in pro.net
хотя там СКЛ был впервую очередь
источник

AH

Ayrat Hudaygulov in pro.net
ну эти руководствовались тем что на сишарпе только круды над БД можно делать (что недалеко от положения дел)
источник

AH

Ayrat Hudaygulov in pro.net
поэтому крудо писатели сразу подхватят SQL Like синтаксис в коллекциях
источник

IC

Ilya Chernoudov in pro.net
опять горишь?
источник

IC

Ilya Chernoudov in pro.net
ты же на благословленном котлине
источник

AH

Ayrat Hudaygulov in pro.net
Ну да, есть чутка. Взбомбануло от континуеВиз
источник

AH

Ayrat Hudaygulov in pro.net
опять
источник

AH

Ayrat Hudaygulov in pro.net
Надо уже забыть про него
источник

IC

Ilya Chernoudov in pro.net
про C#/котлин/continuewith?
источник

AH

Ayrat Hudaygulov in pro.net
ну да. В дотнете дефолт фшарп у меня, сишарпом не пользуюсь совсем
источник

AH

Ayrat Hudaygulov in pro.net
но так как интеропиться с тасками приходиться постоянно, то про континуеВиз забыть сложнее чем про сишарп
источник

IB

Ivan Balanar in pro.net
А где можно ознакомиться с этими строительными блоками?
источник

AH

Ayrat Hudaygulov in pro.net
в определении функтора для начала, потом перейти на монаду. Там реально 2 притопа
join / bind / return и погнали джебошить сколь угодно сложное АПИ
источник

AH

Ayrat Hudaygulov in pro.net
У меня даже где-то есть пример
источник

MS

Michael Snytko in pro.net
не нашел в избранном твоего примера :(
источник

AH

Ayrat Hudaygulov in pro.net
Это если чо меня просто попросили показать пример (вот как ты сейчас)

https://gist.github.com/Szer/083415b1376d4309fb48bf806f6fb0cb

Я сделал кастомную монаду AsyncResult которая и асинк, и Ok/Fail одновременно.

определил bind :: a -> AsyncResult<b> -> AsyncResult<a> -> AsyncResult<b>
определил pure :: a -> AsyncResult<a>

пару хелперов чтобы из Async и Result создавать (необязательно для дальнейших действий)

и отсюда уже

zero :: AsyncResult<unit>
apply :: AsyncResult<a -> b> -> AsyncResult<a> -> AsyncResult<b>
map :: a -> b -> AsyncResult<a> -> AsyncResult<b>
product :: AsyncResult<a> -> AsyncResult<b> -> AsyncResult<a * b>
map2 :: a -> b -> c -> AsyncResult<a> -> AsyncResult<b> -> AsyncResult<c>
traverse :: a seq -> (a -> AsyncResult<b>) -> AsyncResult<b list>
parallel :: AsyncResult<a> seq  -> AsyncResult<a list>

и что угодно другое
источник

AH

Ayrat Hudaygulov in pro.net
пример снизу это код товарище, который спрашивал про теоретическую возможность, адаптированный под эту монаду
источник