Size: a a a

Rust — русскоговорящее сообществo

2020 April 20

RP

Roman Proskuryakov in Rust — русскоговорящее сообществo
Парсите, а не валидируйте: https://habr.com/ru/post/498042/
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
и преобразовать его обратно в вектор будет стоить
источник

А

Алексей in Rust — русскоговорящее сообществo
в хаскеле же списки - это linked list
источник

EG

Emmanuel Goldstein in Rust — русскоговорящее сообществo
Alex Zhukovsky
думаю все не так просто
Да, например, тебе придётся объяснить компилятору, что поля структуры освобождать не надо
источник

Э

Эрик in Rust — русскоговорящее сообществo
Alex Zhukovsky
я ожидаю что тут будет просто цикл, без векторов или еще чего
(1..x).sum()
Просто в хаскелле грязная магия типов, которая списки даёт использовать как итераторы без превращения в вектор, если не используешь список как вектор.
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
Эрик
(1..x).sum()
Просто в хаскелле грязная магия типов, которая списки даёт использовать как итераторы без превращения в вектор, если не используешь список как вектор.
ну вот мне кажется что списки куда больше общего именно с итераторами имеют, чем с векторами
источник

Э

Эрик in Rust — русскоговорящее сообществo
Они всё равно собираются в вектор, когда вычисляются.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Но так да, скорее итератор.
источник

А

Алексей in Rust — русскоговорящее сообществo
они же не векторы
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
Эрик
Они всё равно собираются в вектор, когда вычисляются.
честный вектор это скорее Vector/UArray/..
источник

AT

Alexander Tchitchigin in Rust — русскоговорящее сообществo
Эрик
Они всё равно собираются в вектор, когда вычисляются.
Stream fusion FTW! Так что нет, не обязательно что собираются.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Alexander Tchitchigin
Stream fusion FTW! Так что нет, не обязательно что собираются.
null $! cycle [1]
Зависнет же, нет?
источник

AT

Alexander Tchitchigin in Rust — русскоговорящее сообществo
Эрик
null $! cycle [1]
Зависнет же, нет?
Повесить можно и проще. Мы же говорим о том, что в Haskell иногда связные списки реально исчезают (остаются просто циклы).
Как бывает и с ByteString/Text/Vector...
источник

Э

Эрик in Rust — русскоговорящее сообществo
Ну как бы, с тем же упехом можно в расте сделать iter.chain(other_iter).for_each()
источник

AT

Alexander Tchitchigin in Rust — русскоговорящее сообществo
Эрик
Ну как бы, с тем же упехом можно в расте сделать iter.chain(other_iter).for_each()
Да. Про то и речь, что списки в Haskell ближе к итераторам. Т.е. в большей степени control flow construct, чем data structure.
источник

p

polunin.ai in Rust — русскоговорящее сообществo
источник

Э

Эрик in Rust — русскоговорящее сообществo
Вообще, статья не слишком растовая, такую штуку скорее со слайсами стоит делать, а не векторами.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Но сама статья неплоха, идеи интересные.
источник

AZ

Alex Zhukovsky in Rust — русскоговорящее сообществo
Эрик
Вообще, статья не слишком растовая, такую штуку скорее со слайсами стоит делать, а не векторами.
да, надо было со слайсами пример сделать, тупанул
источник

Э

Эрик in Rust — русскоговорящее сообществo
Со слайсами даже сам язык поможет строить такую non-empty структуру:
pub fn split_first(&self) -> Option<(&T, &[T])> (или split_first_mut, в зависимости от ситуации)
источник