Size: a a a

2021 May 31

ИЛ

Иван Лещенко... in rust_offtopic
Было бы неплохо убрать unwrap для любого индекса <= vec.len(), иначе это просто .get(index) с слоем абстракции
источник

r

red75prime in rust_offtopic
А это уже никак. Для этого нужны dependent types. Тут фишка только в том, что можно индекс проверить один раз, а потом читать много раз без проверок индекса. Но практического смысла мало, да.
источник

ИЛ

Иван Лещенко... in rust_offtopic
На выходе Index будет иметь ВЖ зависимый от вектора, а для проверки мы будем использовать ссылку на вектор. Компилятор не даст нам сделать что-либо с вектором пока у нас есть этот индекс, что равноценно простому хранению ссылки на элемент
источник

r

red75prime in rust_offtopic
Да. Я не могу представить случай, где такое использование инвариантного ВЖ было бы практически полезно. Но может у меня воображение слабое.
источник

KR

Kai Ren in rust_offtopic
Ну а как же этот “нашумевший” GhostCell?
источник

r

red75prime in rust_offtopic
" где такое использование..." ударение на "такое"
источник

p

polunin.ai in rust_offtopic
Для иммутабельного вектора
источник

r

red75prime in rust_offtopic
Там обычно оптимизатор справляется. Полезно если нужно гарантировать доступ без проверок.
источник

A

AR in rust_offtopic
на С++ такой ужас в порядке вещей)))
источник

[

[BRM]White Rabbit in rust_offtopic
На спп только в кт можно
источник

A

AR in rust_offtopic
Я про нечитаемость) Это же хаскель?
источник

p

polunin.ai in rust_offtopic
Это ещё не ужас.
источник

p

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

[

[BRM]White Rabbit in rust_offtopic
Это читаемо
источник

[

[BRM]White Rabbit in rust_offtopic
То, что ты кодишь лишь на каком-то сиподобном яп, не говорит, что всем будет неудобен мл-синтаксис
источник

p

polunin.ai in rust_offtopic
Справедливости ради, любые пруфы сложнее тривиальных будут нечитаемы)
источник

A

AR in rust_offtopic
Приходится переключаться между несколькими языками постоянно. Но к с++-сным извратам так и не смог привыкнуть.
источник

[

[BRM]White Rabbit in rust_offtopic
Я пока до этого не дошёл.
Там нельзя декомпозировать?
источник

p

polunin.ai in rust_offtopic
Можно. Но тогда будет теряться связь между компонентами. Доказал теорему А которая нужна для теоремы Б которая нужна для теоремы В и уже забыл зачем тебе А. Математики привыкшие, им проще.
источник

[

[BRM]White Rabbit in rust_offtopic
:)
источник