Size: a a a

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

2020 May 17

MP

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

MP

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

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Andrew Rudenko
(defn common-prefix 
      ([a b] (common-prefix [] a b))
      ([acc [a & a-tail :as a-vec] [b & b-tail :as b-vec]]
       (if (= a b)
         (recur (conj acc a) a-tail b-tail)
         [acc a-vec b-vec])))
сложность этой функи — n, где n это длинна общего префикса, лучше теоретически невозможно. единственное, что тут можно подтюнить, это сохранения типа vector у возвращаемого tail значения, если это важно
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
а тюнинг не арифметической сложности это обычно совершенно неблагодарное занятие
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Andrew Rudenko
в кложе из говобки нет аналога map/for которые возвращают мапу. многие кладут себе хелперы для такого в utils типа таких https://github.com/plumatic/plumbing/blob/master/src/plumbing/core.cljx#L23
ну и нет ничего зазорного писать (->> ... (into {})) обычно 😉
источник

TP

Tim Plotnikov in Clojure — русскоговорящее сообщество
Vlad Lisovsky
Что это дает кложе?
Думаю можно будет какой-то код писать на кложе под мобилки)
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Andrew Rudenko
сложность этой функи — n, где n это длинна общего префикса, лучше теоретически невозможно. единственное, что тут можно подтюнить, это сохранения типа vector у возвращаемого tail значения, если это важно
это да, я еще хочу посмотреть как там с накладными расходами дела.
источник

MP

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

MP

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

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
В общем, все ожидаемо - на больших векторах цикл с transient дает некоторый выигрыш, но в остальном идиоматичная кложа рулит. Особенно, когда данные соизмеримы с размером чанка.
источник

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Maxim Penzin
так как (= nil nil)
:)
Ммм, а разве что то сломается?
источник

MP

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

MP

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

AR

Andrew Rudenko in Clojure — русскоговорящее сообщество
Ой да, тупанул!
источник

D

Dos in Clojure — русскоговорящее сообщество
(and (= a b) a)
 ?
источник

D

Dos in Clojure — русскоговорящее сообщество
(some-> a (= b))
источник

MP

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

MP

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

S

Special K in Clojure — русскоговорящее сообщество
Кто-нибудь работал с reatom? На cljs можно с ним работать или там есть свои такие же хорошие / лучшие решения?
источник

S

Special K in Clojure — русскоговорящее сообщество
Главным образом в связке с reagent / re-frame это интересно
источник