Size: a a a

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

2019 December 11

AR

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

AI

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

AR

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

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
взять слайс и сделать реверс что ли?
источник

AR

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

(defn reverse-diap [vec from to]
 (mapv #(nth vec (dec %)) (range to from -1)))
источник

MP

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

AR

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

AR

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

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Если вектор, то https://clojuredocs.org/clojure.core/subvec за линейное время
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
ну да mapv тоже вроде нормально работает
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
т.е. константное
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
вопрос в накладных на вызов только.
источник

AR

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

(defn reverse-diap [vec from to]
 (mapv #(nth vec (dec %)) (range to from -1)))
на вопрос что именно ты хочешь оптимизнуть и возможно тебе лучше поменять задачу и view (он же слайс) подойдет лучше ты просто решил повторять какое-то слово
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
@IIvana я молодец? subvec и reverse
источник

AI

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

AI

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

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
ну значит два subvec
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
три :)
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
и потом собрать - 4 аллокации
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
никому тут не угодишь. У все задачи типичные, а у вас нетипичные.
источник