Size: a a a

2020 August 13

DF

Dollar Føølish in rust_offtopic
Или падает.. не пойму
источник

AZ

Alex Zhukovsky in rust_offtopic
весь сторонний тулинг такого не ожидает
источник

KR

Kai Ren in rust_offtopic
GADT - это когда Option::Some и Option::None - типы?
источник

SP

Stanislav Popov in rust_offtopic
Kai Ren
GADT - это когда Option::Some и Option::None - типы?
я трачу час на то чтобы понять и вроде понимаю а потом всеравно забываю
источник

SP

Stanislav Popov in rust_offtopic
там какаято очень мелкая деталь для каких то кейсов которые даже не приходят в голову
источник

AZ

Alex Zhukovsky in rust_offtopic
Kai Ren
GADT - это когда Option::Some и Option::None - типы?
нет, это когда варианты энума могут быть генериками и уточнять тип энума:

enum Foo<T> {
  Bar : Foo<i32>,
  Baz(T) : Foo<T>
}
источник

KR

Kai Ren in rust_offtopic
Alex Zhukovsky
нет, это когда варианты энума могут быть генериками и уточнять тип энума:

enum Foo<T> {
  Bar : Foo<i32>,
  Baz(T) : Foo<T>
}
Понял, спасибо.
источник

AZ

Alex Zhukovsky in rust_offtopic
Kai Ren
Понял, спасибо.
https://en.wikibooks.org/wiki/Haskell/GADT вот понятное объяснение зачем такое нужно может быть
источник

P

Pavel in rust_offtopic
Stanislav Popov
я трачу час на то чтобы понять и вроде понимаю а потом всеравно забываю
это когда тэг не список, а дерево
источник

SP

Stanislav Popov in rust_offtopic
Alex Zhukovsky
нет, это когда варианты энума могут быть генериками и уточнять тип энума:

enum Foo<T> {
  Bar : Foo<i32>,
  Baz(T) : Foo<T>
}
твое обьяснение как то намного проще
источник

AZ

Alex Zhukovsky in rust_offtopic
🤷‍♂️
источник

AZ

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

CD

Constantine Drozdov in rust_offtopic
Pavel
тоесть, это всё делалось в сях и плюсах ещё когда по земле ходили динозавры, просто не знали, что так называется
https://en.wikipedia.org/wiki/Simula
ты удивишься, что во времена динозавров делали
источник

AZ

Alex Zhukovsky in rust_offtopic
как по ссылке,
enum Expr {
 I(i32),
 B(bool),
 Add(Box<Expr>, Box<Expr>),
 Mul(Box<Expr>, Box<Expr>),
 Eq(Box<Expr>, Box<Expr>),
}

Для
него не получится нормально eval написать
источник

AZ

Alex Zhukovsky in rust_offtopic
А вот так:

enum Expr<T: Eq> {
 I(i32) : Expr<i32>,
 B(bool) : Expr<bool>,
 Add(Box<Expr<i32>>, Box<Expr<i32>>) : Expr<i32>,
 Mul(Box<Expr<i32>>, Box<Expr<i32>>) : Expr<i32>,
 Eq(Box<Expr<T>>, Box<Expr<T>>) : Expr<T>,
}

Изи
источник

AZ

Alex Zhukovsky in rust_offtopic
доказательство оставляем читателю в качестве упражнения)
источник

SP

Stanislav Popov in rust_offtopic
я в очередной раз не удивился что оно быстро забывается - потому что я сходу не могу придумать вообще юзкейс
источник

AZ

Alex Zhukovsky in rust_offtopic
Stanislav Popov
я в очередной раз не удивился что оно быстро забывается - потому что я сходу не могу придумать вообще юзкейс
вот юзкейс лол
источник

AZ

Alex Zhukovsky in rust_offtopic
калькулятор пишешь - появился юзкейс
источник

p

polunin.ai in rust_offtopic
Alex Zhukovsky
это пример который оно не парсит
Это все решаемые проблемы лол
источник