Size: a a a

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

2019 October 16

VL

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

AC

Anton Chikin in Clojure — русскоговорящее сообщество
pop/peek на векторах o(1)
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Vlad Lisovsky
идти рекурсивно? и если рест пустой, то ферст это последний элемент 🙂
Да, суть та же, просто в кложе есть функции которые уже за тебя это делают 🙂
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Vlad Lisovsky
идти рекурсивно? и если рест пустой, то ферст это последний элемент 🙂
так тогда зачем оно вообще нужно? просто деструктуризуешь [x & xs] и recur на xs
источник

AC

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

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
Anton Chikin
Это для векторов. Для списков то же самое но last/but-last
Да, я понимаю, я так и делал. Нужно только сверху или снизу обмазаться проверкой на пустоту секи.
Но в итоге затупил, отсюда и вопрос.
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
Да, я понимаю, я так и делал. Нужно только сверху или снизу обмазаться проверкой на пустоту секи.
Но в итоге затупил, отсюда и вопрос.
Ну да там может эксепшен прилететь в случае pop/peek 🙁
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
издержки точечной оптимизации под вектора 🙁
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
да чо заморачиваться
(defn map-but-last [in f1 f2]  
(loop [res []
       [x & xs] in]
  (if xs
    (recur (conj res (f1 x)) xs)
    (conj res (f2 x)))))

(map-but-last [1 2 3] (partial * 0) identity)

;; [0 0 3]
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
а ещё можно сгенерить список аналогичного размера с функциями обработки и мапнуть
#(%1 %2)
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
а ещё можно сгенерить список аналогичного размера с функциями обработки и мапнуть
#(%1 %2)
(map (comp eval list) ...)
:^)
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
(map (comp eval list) ...)
:^)
никаких эвалов, плз
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
(^:
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
никаких эвалов, плз
(map (comp (partial apply apply) (juxt first rest)) ...)
😁
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
Mike Bohdan
(map (comp (partial apply apply) (juxt first rest)) ...)
😁
Миша, за что?!
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
(но хорошо, да)
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
вспомнилось
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
(defn map-but-last [in f1 f2]
 (map #(%1 %2)
      (-> in count dec
          (repeat f1)
          (concat [f2]))
      in))
ну или так :), ко всему прочему лениво
источник

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
(выдохнул)
источник