These are chat archives for dev-ua/rust

24th
Jun 2015
Ihor Kaharlichenko
@kaharlichenko
Jun 24 2015 20:21
есть в стандартной либе in-place сортировка для чего-нибудь кроме слайсов?
или, если зайти с другой стороны: можно ли как-то "прикинуться" слайсом, чтоб использовать его методы sort()/sort_by()?
Michael Pankov
@mkpankov
Jun 24 2015 21:20
@madkinder а кому надо прикинуться? например, Vec реализует as_slice или что-то такое
Ihor Kaharlichenko
@kaharlichenko
Jun 24 2015 21:21
не пойдёт. в векторе реализация выдаёт "кишки" в качестве слайса
я тут решил задачки порешить с реддита, размяться, так сказать :) одна из задач: сортировать слово оставляя "не буквы" на своих местах
вот я и хотел сделать что-то типа SkipSlice, который бы "пропускал" не-буквы, а потом этот слайс просто отсортировал бы штатным sort()
Michael Pankov
@mkpankov
Jun 24 2015 21:25
https://doc.rust-lang.org/stable/std/raw/struct.Slice.html судя по документации, срез только последовательную область памяти представляет
тебе итератор какой-то нужен
Ihor Kaharlichenko
@kaharlichenko
Jun 24 2015 21:26
угу... есть предложения как это идеоматически сделать?
Michael Pankov
@mkpankov
Jun 24 2015 21:26
который отдаёт элементы на изменение
Ihor Kaharlichenko
@kaharlichenko
Jun 24 2015 21:26
вот в питоне том же есть sorted(), который на вход принимает любую коллекцию или итератор
просто самому сортировку реализовывать совсем не хочется
Michael Pankov
@mkpankov
Jun 24 2015 21:27
@madkinder я бы посмотрел на это сначала https://doc.rust-lang.org/stable/std/iter/trait.Iterator.html#method.filter
Ihor Kaharlichenko
@kaharlichenko
Jun 24 2015 21:29
фильтром я могу просто убрать пунктуацию. а мне надо её на месте оставить, вот так:
assert_eq!(my_sort("o'clock") == "c'ckloo")
Michael Pankov
@mkpankov
Jun 24 2015 21:30
зачем, ты фильтр сортируй
Ihor Kaharlichenko
@kaharlichenko
Jun 24 2015 21:30
не понял
фильтр просто отсекает ненужное по предикату
да и как можно итератор сортировать?
Michael Pankov
@mkpankov
Jun 24 2015 21:32
наверное не смогу помочь, разбираюсь с деградацией производительности regex