Size: a a a

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

2019 October 16

AZ

Alex Zveryansky in Clojure — русскоговорящее сообщество
Sergey Trofimov
только (dec (count items)) наверное не стоит делать в каждом цикле
Вот кстати, а при компиляции такое не прооптимизируется само? В конце концов иммутабельность.. Может есть рекомендации что почитать на эту тему?
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
извините
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
list-item-1
list-item-2
list-item-3 +
а это разве не то, что надо?
(def items ["item-1" "item-2" "item-3"])
(update items (.indexOf items (last items)) #(str % "-last"))
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
или я чего-то не понимаю в clojure пока что?
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
значит не понимаю)
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Там не текстовые данные, но, вероятно, можно и так
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
а какие?
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
По-сути там будут векторы векторов векторов векторов
источник

СС

Сергей Суржик in Clojure — русскоговорящее сообщество
так не суть же)
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Просто в целом сегодня я туплю по поводу особой обработки элемента коллекции не вылезая из кложи
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Ivan Grishaev
(doseq [[i item] (map-indexed vector items)
       :let [last? (= i (dec (count items)))]]
 (if last?
   ;; last logic
   ;; not last logic
   )
)
(conj
 (map do-something (pop your-vector))
 (do-something-else (peek your-vector)))
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Это для векторов. Для списков то же самое но last/but-last
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
Просто в целом сегодня я туплю по поводу особой обработки элемента коллекции не вылезая из кложи
Суть в том что надо его откусить и обработать его отдельно остальную коллекцию отдельно, а потом собрать коллекцию обратно
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Нет нужды в индексах ковыряться - вы же в ФП языке - тут можно явно последний элемент получить
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
а что если first rest ?)
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Vlad Lisovsky
а что если first rest ?)
и реверсить два раза?
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Vlad Lisovsky
а что если first rest ?)
Ну это то же самое что last/but-last ^)
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Только это для seq. Если точно знаешь что там вектор то pop/peek будут оптимальнее
источник

VL

Vlad Lisovsky in Clojure — русскоговорящее сообщество
идти рекурсивно? и если рест пустой, то ферст это последний элемент 🙂
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
last/but-last линейная производительность
источник