Size: a a a

2020 April 03

p

polunin.ai in rust_offtopic
Soul
по большому счету это всё assert входных и выходных данных. Да , это можно запихнуть в сигнатуру типа, и WeirdRange или что-то на его основе могут с этим справиться, если есть такое желание
Только то что ты предложил это неудобно из-за бойлерплейта
источник

S

Soul in rust_offtopic
Несмотря на возможность допилить язык так, чтобы в сигнатуре типов можно было писать всякую функциональщину, тебе не нравится что этого изначально нет в языке, а допиливание ты называешь бойлерплейтом
источник

B

Bogdan in rust_offtopic
источник

S

Soul in rust_offtopic
polunin.ai
where { i>=0, i<10: out.a[i] != ins.a[i] }
да, пользоваться аргументами функции в описании типа возвращаемого значения нельзя, придется (о ужас) делать проверку в теле функции
источник

p

polunin.ai in rust_offtopic
Soul
Несмотря на возможность допилить язык так, чтобы в сигнатуре типов можно было писать всякую функциональщину, тебе не нравится что этого изначально нет в языке, а допиливание ты называешь бойлерплейтом
Если бы я писал на зиге, я бы так не писал
источник

B

Bogdan in rust_offtopic
импровизированая повязка
источник

p

polunin.ai in rust_offtopic
1. Тут все проверки в рантайме.
2. Нужно думать как это писать.
источник

p

polunin.ai in rust_offtopic
3. Так как проверки в рантайме, то и эксепшены в рантайме могут быть. На этапе компиляции ничего не проверяется.
источник

p

polunin.ai in rust_offtopic
То есть это не работает просто
источник

S

Soul in rust_offtopic
polunin.ai
Если бы я писал на зиге, я бы так не писал
ну генерики через compiletime-выражения там есть даже в стандартной библиотеке, а тип WeirdRange ты сам поставил как условие, естественно в жизни таким в нефункциональных языках не пользуются
источник

S

Soul in rust_offtopic
polunin.ai
1. Тут все проверки в рантайме.
2. Нужно думать как это писать.
не бывает проверок не-в-рантайме для данных, которые ты получаешь в рантайме
источник

p

polunin.ai in rust_offtopic
Это не имеет отношение к функциональности языка
источник

p

polunin.ai in rust_offtopic
Это можно и в императивном сделать
источник

S

Soul in rust_offtopic
я тебе показал как это сделать, ты сказал что в императивных таким не пользуются
источник

p

polunin.ai in rust_offtopic
Soul
не бывает проверок не-в-рантайме для данных, которые ты получаешь в рантайме
Ты получаешь от пользователя одно значение, а потом в программе делаешь 1000 операций
источник

p

polunin.ai in rust_offtopic
Тебе достаточно проверить в рантайме только значение пользователя
источник

S

Soul in rust_offtopic
я делаю тот же if, который ты описывал, и ничего больше
источник

p

polunin.ai in rust_offtopic
Не понял
источник

S

Soul in rust_offtopic
всё, я сдулся и молчу
источник

r

red75prime in rust_offtopic
Soul
не бывает проверок не-в-рантайме для данных, которые ты получаешь в рантайме
В рантайме конвертируем String в Option<RestrictedRange> или что-то вроде этого, а дальше всё типизированно
источник