Size: a a a

2020 April 01

r

red75prime in rust_offtopic
Alex Zhukovsky
вместо этого 3 разных синтаксиса: трай трейты, форычи и авейты
ещё ; и назначение значений переменным. Кстати, я не встречал процедур трансляции произвольного control flow в async в do-нотацию. Они существуют?
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
у резалта и опшна есть and_then, значит и ду для него работать будет точно так же
and_then не прерывает функцию
источник

G

Gymmasssorla in rust_offtopic
polunin.ai
@hirrolot кстати, ? не спасет, если нужно продолжить функцию даже если при отправке сообщения случилась ошибка
Хорошо, продолжи сам
источник

AZ

Alex Zhukovsky in rust_offtopic
red75prime
ещё ; и назначение значений переменным. Кстати, я не встречал процедур трансляции произвольного control flow в async в do-нотацию. Они существуют?
можно странслировать 1 в 1, делаешь функции Case/Break/Continue/While/Goto/...
источник

AZ

Alex Zhukovsky in rust_offtopic
в скаловой книжке был пример емнип
источник

p

polunin.ai in rust_offtopic
А суть трай трейта что ты можешь прервать функцию
источник

AZ

Alex Zhukovsky in rust_offtopic
нет, суть в том что ты предоставляешь and_then, только опосредовательно (через into_result)
источник

AZ

Alex Zhukovsky in rust_offtopic
то есть тот же ду
источник

AZ

Alex Zhukovsky in rust_offtopic
только в профиль
источник

p

polunin.ai in rust_offtopic
Не понял
Покажи как этот код будет выглядеть с Ду нотацией
fn foo() -> Result {
 let bar = Ok(10)?;
 let baz = bar + 10;
 log::info!(baz);
 Ok(baz)
}
источник

AZ

Alex Zhukovsky in rust_offtopic
foo :: Result
foo = do
   bar <- Ok 10
   let baz = bar + 10
   liftIO $ logInfo baz
   Ok baz
источник

AZ

Alex Zhukovsky in rust_offtopic
если монада чуть умнее то лифтио писать не надо
источник

T

Tux in rust_offtopic
Переслано от Tux
посоны, чзх?
источник

В

Вафель in rust_offtopic
Alex Zhukovsky
можно было бы сделать "нечестные" адхок ду как в скале
Для него разве не достаточно макросов?
источник

Т8

Т-34 85 in rust_offtopic
действительно, изи же!
источник

Т8

Т-34 85 in rust_offtopic
Переслано от Михаил Бахтерев...
Почему сложно? Монады изначально использовались для описания эффекта бета-редукции в денотационных моделях нетипизированного lambda-исчисления. С типизированным, кстати, проблем особо и не было, потому что всем хватало STLC, в котором нет проблем с неопределённостью. Теоркат, фактически, пришлось затащить в информатику в отчаянных попытках понять, в каком смысле T может быть равно Т -> T. А потом уже понеслось. Но, кстати, первые описания прочих эффектов: работа с вводом/выводом или с памятью (что особо занимало умы) тоже были даны сначала в бестиповых денотационных конструкциях.
источник

AZ

Alex Zhukovsky in rust_offtopic
Вафель
Для него разве не достаточно макросов?
с макросами охреневает иде
источник

AZ

Alex Zhukovsky in rust_offtopic
а вообще есть mdo! макрос, но по причинам юзабилити он никем не используется
источник

Т8

Т-34 85 in rust_offtopic
Doge Shibu
avoid (success at all costs)

И вот очень жаль, что этого в раст сообществе не понимают совершенно. Почему-то все хотят из раста сделать какой-то второй "модный" и "хайповый" js, а не хороший язык.
хотят-то, может, и хотят. Вот только не похоже, что так делают
источник

В

Вафель in rust_offtopic
Alex Zhukovsky
с макросами охреневает иде
Эхх(
источник