Size: a a a

2020 March 25

p

polunin.ai in rust_offtopic
ну с графами только страдать, да
источник

AZ

Alex Zhukovsky in rust_offtopic
вопрос не в графах, а в боксах
источник

AZ

Alex Zhukovsky in rust_offtopic
без боксов ты не можешь скрыть тот факт что две футуры возвращающие одно значение на самом деле разные (но нас это не волнует)
источник

AZ

Alex Zhukovsky in rust_offtopic
ок, еще проще пример
источник

AZ

Alex Zhukovsky in rust_offtopic
fn foo(a: bool) -> Fn() -> i32 {
 if a { || 10 } else { || 20 }
}
источник

AZ

Alex Zhukovsky in rust_offtopic
простейший пример, компилится в любом яп с гц, в расте - нет
источник

AZ

Alex Zhukovsky in rust_offtopic
иди обмажься боксами, дин трейтами или делай энум и реализовывай для него Fn
источник

AZ

Alex Zhukovsky in rust_offtopic
Fn/FnMut/FnOnce  - в языках с гц достаточно одного
источник

AZ

Alex Zhukovsky in rust_offtopic
в расте нужно жонглировать ими, подбирая по ситуации
источник

AZ

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

AZ

Alex Zhukovsky in rust_offtopic
короче это всё конкретно трейдофы раста из-за отсутствия гц
источник

AZ

Alex Zhukovsky in rust_offtopic
и выразительность от этого страдает, как видно
источник

p

polunin.ai in rust_offtopic
я хз как по-другому сделать
источник

p

polunin.ai in rust_offtopic
без гц
источник

В

Вафель in rust_offtopic
Alex Zhukovsky
fn and_then<F, B>(self, f: F) -> AndThen<Self, B, F>
where
   F: FnOnce(Self::Item) -> B,
   B: IntoFuture<Error = Self::Error>,
   Self: Sized,
Видел статью как можно накостылить. По сути просто сделать сигнатуру более универсальной, чтобы AndThen/FlatMap футур/итераторов влезал, а для простых случаев вроде Option юзать Id.

Но это всё дикость конечно немного
источник

AZ

Alex Zhukovsky in rust_offtopic
polunin.ai
без гц
так в этом и суть
источник

AZ

Alex Zhukovsky in rust_offtopic
берешь гц и этих проблем _просто нет_
источник

AZ

Alex Zhukovsky in rust_offtopic
просто пишешь лямбду - она работает
источник

AZ

Alex Zhukovsky in rust_offtopic
почему? Потоум что гц сам знает где какие переменные замкнуть, и сам соберёт когда надо
источник

AZ

Alex Zhukovsky in rust_offtopic
про self referential тоже пример хороший
источник