Size: a a a

Compiler Development

2021 July 07

ДК

Дикий Кот in Compiler Development
Сейчас там Self
источник

h

hazer_hazer in Compiler Development
неа. зависит от std.
В расте задаешь Self::Output, но вроде не у всех std::ops он есть
источник

ДК

Дикий Кот in Compiler Development
Тип результата
источник

П

Пух in Compiler Development
impl Mul<Vector> for Covector {
type Output = u8
}
источник

П

Пух in Compiler Development
Это дефолт
источник

а

а это кто in Compiler Development
Что это за яп
источник

П

Пух in Compiler Development
Разница в том, что нельзя вернуть абстрактный Number, эт да
источник

B

Brenoritvrezorkre in Compiler Development
это отсюда
источник

а

а это кто in Compiler Development
ок
источник

П

Пух in Compiler Development
Костылится через втейблы, dyn и тот же num_traits, возможно, но жить с этим фигово будет
источник

h

hazer_hazer in Compiler Development
а вот как этот абстрактный Number вообще в системе типов Раста описать? (tagged union (enum) не в счет, там всё явно)
источник

П

Пух in Compiler Development
Условно T: Mul<T> + Add<T> etc
источник

П

Пух in Compiler Development
Но я уже сказал это грустно и плохо в целом
источник

h

hazer_hazer in Compiler Development
это будет не Number, а T: Mul<T> + Add<T> etc 😉
источник

h

hazer_hazer in Compiler Development
а чего плохого? дженериками вроде все юзкейсы можно покрыть
источник

h

hazer_hazer in Compiler Development
хотяя... было бы удобно писать что-то вроде <T: Uint>, и если потом нужно будет, поменять u8 на u16 и тд
источник

П

Пух in Compiler Development
Потому что редко кто принимает Mul etc
источник

ДК

Дикий Кот in Compiler Development
Ok. Понял. Но, собственно, на суть вопроса это не влияет: не обязательно делать через типы, как в системах типов, можно делать через тэги и диспетчеризацию, и получать не меньшую выразительность. При этом, сам язык будет концептуально проще.

Такую же фигню можно сделать в Scheme просто на процедурах и символах в качестве маркеров.
источник

h

hazer_hazer in Compiler Development
ето да
источник

П

Пух in Compiler Development
А кастить это вот страшное к числам нутакое
источник