Size: a a a

2020 May 02

EG

Emmanuel Goldstein in rust_offtopic
polunin.ai
если указан в объявлении типа то это рендж
А я могу сделать, например
type S = Int & [1, 2, 3, 9, 100500]

или
type S = String & ["hello", "world", "helloworld"]

?
источник

p

polunin.ai in rust_offtopic
пока из типов только Int, но в будущем да, можно будет
источник

EG

Emmanuel Goldstein in rust_offtopic
То есть первый пример будет работать?
источник

EG

Emmanuel Goldstein in rust_offtopic
Прикольно
источник

p

polunin.ai in rust_offtopic
а, не
можно так
type S = Int & (1 | 2 | 3)
источник

EG

Emmanuel Goldstein in rust_offtopic
А выражения уже есть? Арифметика?
источник

EG

Emmanuel Goldstein in rust_offtopic
typeof (S + S)
источник

EG

Emmanuel Goldstein in rust_offtopic
Такие констрейнты должно быть диким геморроем поддерживать при арифметических операциях
источник

p

polunin.ai in rust_offtopic
только объявления типов) сейчас буду делать функции, арифметику и т.п.

S + S тоже будет
не, не геморойно, я предусмотрел что нужно будет констрейны складывать.
источник

EG

Emmanuel Goldstein in rust_offtopic
Складывать это фигня
источник

EG

Emmanuel Goldstein in rust_offtopic
rem уже интереснее
источник

p

polunin.ai in rust_offtopic
это что?
источник

EG

Emmanuel Goldstein in rust_offtopic
Остаток от деления
источник

p

polunin.ai in rust_offtopic
остаток от деления это частный случай итератора
источник

p

polunin.ai in rust_offtopic
по сути
источник

p

polunin.ai in rust_offtopic
то он и есть
источник

p

polunin.ai in rust_offtopic
val % 2 == 0 то же что и [0,2..]
источник

EG

Emmanuel Goldstein in rust_offtopic
Например,
type T = Int & [1, 3 .. ∞]
t: T
typeof (t % 6) = [1, 3 .. 6]
// тут пока понятно
type S = Int & val != 6
s: S
typeof (t % s) = WTF
источник

p

polunin.ai in rust_offtopic
хз подумаю
источник

EG

Emmanuel Goldstein in rust_offtopic
Ситуация становится ещё хуже с кастомными функциями
typeof(fib(Int & val != 3))
источник