Size: a a a

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

2020 October 16

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
можно ж деструктурнуть
(defn collect-uuids [data]
 (loop [acc []
        {:keys [tag/uuid parent]} data]
   (let [r (conj acc uuid)]
     (if parent
       (recur r parent)
       r))))
Можно, но код шире становится)) Я с телефона писал
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
Можно, но код шире становится)) Я с телефона писал
нуу, можно тогда мультиарно сделать, будет уже :)
(defn collect-uuids
 ([data]
  (collect-uuids [] data))
 ([acc {:keys [tag/uuid parent]}]
  (let [r (conj acc uuid)]
     (if parent
       (recur r parent)
       r))))
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
нуу, можно тогда мультиарно сделать, будет уже :)
(defn collect-uuids
 ([data]
  (collect-uuids [] data))
 ([acc {:keys [tag/uuid parent]}]
  (let [r (conj acc uuid)]
     (if parent
       (recur r parent)
       r))))
Во, так лучше, да
источник

E

ETL in Clojure — русскоговорящее сообщество
Ivan Grishaev
(def data {:tag/uuid "a"
          :parent {:tag/uuid "b"
                   :parent {:tag/uuid "c"}}})

(def nodes
 (tree-seq (fn [node]
           (-> node :parent some?))
         (fn [node]
           (-> node :parent vector))
         data))

(map :tag/uuid nodes)

("a" "b" "c")
Это прям хозяйке на заметку) The real Clojure cookbook )
источник

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
Ivan Grishaev
(def data {:tag/uuid "a"
          :parent {:tag/uuid "b"
                   :parent {:tag/uuid "c"}}})

(def nodes
 (tree-seq (fn [node]
           (-> node :parent some?))
         (fn [node]
           (-> node :parent vector))
         data))

(map :tag/uuid nodes)

("a" "b" "c")
(def nodes 
 (tree-seq (comp some? :parent)
           (comp vector :parent)
           data))

ещё можно, ну и одним тредом
(->> data
    (tree-seq (comp some? :parent)
              (comp vector :parent))
    (map :tag/uuid))
источник

χλ

χоρоший ☽☽☽ λисuчко... in Clojure — русскоговорящее сообщество
Какие у вас сложные вопросы на входе...
источник
2020 October 17

LD

Llun Diov in Clojure — русскоговорящее сообщество
Всем привет! Читаю про конвеншины в кложуре, вот наткнулся на :
 "Try to use swap! rather than reset!, where possible."
Это в целях оптимизации или есть что-то еще ?
источник

AD

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

E

ETL in Clojure — русскоговорящее сообщество
Оптимизация слишком ёмкое слово, непонятно, что Вы вкладываете в него. Для разных задач разные решения являются оптимальными.
swap! выполняет изменение значения atomically, т.е. в т.ч. путём разрешения конфликтов запросов на изменение состояния с течением времени
для reset! конфликтов не существует, соответственно два потока, обращаясь к одному атому одновременно - получат разные состояния значения атома
источник

LD

Llun Diov in Clojure — русскоговорящее сообщество
ETL
Оптимизация слишком ёмкое слово, непонятно, что Вы вкладываете в него. Для разных задач разные решения являются оптимальными.
swap! выполняет изменение значения atomically, т.е. в т.ч. путём разрешения конфликтов запросов на изменение состояния с течением времени
для reset! конфликтов не существует, соответственно два потока, обращаясь к одному атому одновременно - получат разные состояния значения атома
Спасибо.
источник

LD

Llun Diov in Clojure — русскоговорящее сообщество
Благодарю.
источник
2020 October 19

L

Leyλa in Clojure — русскоговорящее сообщество
Всем привет!

Завтра 20.10 в 20:00MSK будет онлайн доклад от Кирилла Чернышова “Использование Clojure CLI для автоматизации рутинных задач”:
В Leiningen есть плагины, в boot-clj есть поды для запуска разовых утилит в процессе разработки clojure приложения. Недавнее новшество в Clojure CLI позволяет вывести разработку и поддержку таких утилит на качественно новый уровень. Кирилл постарается рассказать, как организовать приложение с учетом нового инструмента exec-fn и заменить maven для сборки java исходников нативными инструментами написанными на Clojure.

Ссылка на зум появится в ЭТОМ канале за 15 минут до начала. До встречи!
источник

М

Ми2 in Clojure — русскоговорящее сообщество
14
источник

V0

Vlad 0xd728c4a7cd55d... in Clojure — русскоговорящее сообщество
Мне интересно, какие есть истории “we moved to Clojure from …”? Т.е. не те, кто на stackshare указал, что используют, а кто что-то переписал?
источник

((

(fun () -> ()) in Clojure — русскоговорящее сообщество
Vlad 0xd728c4a7cd55d8db
Мне интересно, какие есть истории “we moved to Clojure from …”? Т.е. не те, кто на stackshare указал, что используют, а кто что-то переписал?
https://kasta.ua/ переписали с python на clojure. И как по мне - неудачно
источник

V0

Vlad 0xd728c4a7cd55d... in Clojure — русскоговорящее сообщество
(fun () -> ())
https://kasta.ua/ переписали с python на clojure. И как по мне - неудачно
о как.. почему? (в чатике нет Соловьева, wtf?!)
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Vlad 0xd728c4a7cd55d8db
Мне интересно, какие есть истории “we moved to Clojure from …”? Т.е. не те, кто на stackshare указал, что используют, а кто что-то переписал?
источник

((

(fun () -> ()) in Clojure — русскоговорящее сообщество
Vlad 0xd728c4a7cd55d8db
о как.. почему? (в чатике нет Соловьева, wtf?!)
в контроллерах править sql схему это не то чего я ждал от FP на кложе
источник

((

(fun () -> ()) in Clojure — русскоговорящее сообщество
и напомню проект переписанный, то есть детали решения в голове уже были
источник

((

(fun () -> ()) in Clojure — русскоговорящее сообщество
чистых функций раз два и закончились
источник