Size: a a a

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

2019 December 11

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
так может исходный массив проще сортануть
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
потому что можно пересчитывать индексы по одному диапазону реверса, но по 2 и более последовательным уже эребор
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
и вообще все нужно замерять, потому что это гадание на кофейной гуще
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Andrey Ivanov
потому что можно пересчитывать индексы по одному диапазону реверса, но по 2 и более последовательным уже эребор
"пересчитывать индексы" звучит куда серьезнее, чем "выполнить вычитание"
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
правильно. поэтому я и выделил отдельную мааленькую подзадачку, которую можно оптимизировать отдельно
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
или мапу какую-то пострить
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
ты вычитанием не отделаешься
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
отделаешься
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
мапу - ключи менять, вектор - та же мапа с интовыми ключами в кложе
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
не отделаешься
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Andrey Ivanov
не отделаешься
аргументация прям на соточку. как будто бы не ты с вопросом пришел
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
почему не отделаться?
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
(assocN, cons и pop имплементируются по желанию)
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
отлично. а теперь 2 вопроса - будет ли это композироваться само с собой? чтобы в SubvecRev передать предыдуший SubvecRev. Ок, допустим ты закомпозировал и оно работает. Но для 10 диапазонов у тебя будет обертка 10 уровней вложенности с пересчетом индексов на каждом уровне. Мне кажется, это немного неоптамально, хотя конечно зависит от длины исходного вектора
источник

AI

Andrey Ivanov in Clojure — русскоговорящее сообщество
Возможно стоило уточнить, что юзкейс - вектора по 100 элементов сотни раз частично реверсить, а не вектор на 100500 элементов 1 раз
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Andrey Ivanov
отлично. а теперь 2 вопроса - будет ли это композироваться само с собой? чтобы в SubvecRev передать предыдуший SubvecRev. Ок, допустим ты закомпозировал и оно работает. Но для 10 диапазонов у тебя будет обертка 10 уровней вложенности с пересчетом индексов на каждом уровне. Мне кажется, это немного неоптамально, хотя конечно зависит от длины исходного вектора
могу повторить, что "пересчет индексов" звучит куда серьезнее, чем (end - i), которым якобы не отделаться
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
у этого 0 оверхеда по сравнению с subvec
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
альтернатива — аллокация новой структуры, которая банальный однострочник, о котором я сразу спросил "что тут оптимизировать?"
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Andrew Rudenko
у этого 0 оверхеда по сравнению с subvec
+ на - поменяли просто
источник