Size: a a a

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

2020 March 03

DL

Dmytro Lispyvnyi '(🌲 🍺) in Clojure — русскоговорящее сообщество
и тогда
(map
(partial gen-string-ids id) (gen-ids amount))
источник

T

Timmy B in Clojure — русскоговорящее сообщество
Dmytro Lispyvnyi '(🌲 🍺)
вообще, я тут, грешным делом, подумал, что не факт, что (str id "_" index) никто не мешает потом генерить на фронте, а в кишках держать мапку
фронта нет. это и есть кишки.
источник

T

Timmy B in Clojure — русскоговорящее сообщество
остановился на

(defn vehicle-names [{:keys [id amount]}]
 (let [prefix (str id "_")
       indices (range 1 (inc amount))]
   (map #(str prefix %) indices)))
источник

DL

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

(defn vehicle-names [{:keys [id amount]}]
 (let [prefix (str id "_")
       indices (range 1 (inc amount))]
   (map #(str prefix %) indices)))
2 str
источник

DL

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

T

Timmy B in Clojure — русскоговорящее сообщество
отож
источник

T

Timmy B in Clojure — русскоговорящее сообщество
всё равно думаю придётся на котлине перехуячивать :(
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
А есть какой-нибудь простой алгоритм, котороый делает из этого вот это?
[:a
:b
{:c [:d {:e [:f]}]
 :g :h}]

#{[:a]
 [:b]
 [:c :d]
 [:c :e :f]
 [:g :h]}

может быть на clojure.zip это просто получится?
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
А есть какой-нибудь простой алгоритм, котороый делает из этого вот это?
[:a
:b
{:c [:d {:e [:f]}]
 :g :h}]

#{[:a]
 [:b]
 [:c :d]
 [:c :e :f]
 [:g :h]}

может быть на clojure.zip это просто получится?
При
[:a
:b
{:c [:d
     {:e [:f
          {:i :j}]}]
 :g :h}]
Будет
=> #{[:a]
    [:b]
    [:c :d]
    [:c :e :f]
    [:c :e :i :j]
    [:g :h]}
?
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
При
[:a
:b
{:c [:d
     {:e [:f
          {:i :j}]}]
 :g :h}]
Будет
=> #{[:a]
    [:b]
    [:c :d]
    [:c :e :f]
    [:c :e :i :j]
    [:g :h]}
?
да
источник

T

The2lb3oz4dr10½grOfHedgehogs in Clojure — русскоговорящее сообщество
Я думаю зип может помочь, но каждый раз когда я его использую для того чтобы полностью обойти дерево, я в результате его не использую, а обхожусь редьюсом использующим функции для интерфейса заданного зипом
источник

ИС

Ильшат Султанов in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
А есть какой-нибудь простой алгоритм, котороый делает из этого вот это?
[:a
:b
{:c [:d {:e [:f]}]
 :g :h}]

#{[:a]
 [:b]
 [:c :d]
 [:c :e :f]
 [:g :h]}

может быть на clojure.zip это просто получится?
с помощью tree-seq не пробовал?
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Walk можно
источник
2020 March 04

T

Timmy B in Clojure — русскоговорящее сообщество
а как бы поидиоматичнее получить такое:

есть список [a b c d e f …]

как получить последовательность [a], [a b], [a b c], …
источник

T

Timmy B in Clojure — русскоговорящее сообщество
конкретный тип коллекции не важен в принципе
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
у вектора эффективное удаление элементов с хвоста
можно просто рекурсивно откусывать последний элемент и добавлять остаток в аккумулятор

можно еще использовать списки, но тогда элементы должны быть в обратном порядке. у списка эффективное добавление в голову
источник

MP

Maxim Penzin in Clojure — русскоговорящее сообщество
Mikhail Kuzmin
у вектора эффективное удаление элементов с хвоста
можно просто рекурсивно откусывать последний элемент и добавлять остаток в аккумулятор

можно еще использовать списки, но тогда элементы должны быть в обратном порядке. у списка эффективное добавление в голову
то про какой вектор речь?
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
(reduce (fn [acc i]
         (if (empty? acc)
           (conj acc [i])
           (conj acc (conj (peek acc) i))))
       []
       [1 2 3 4 5])
источник

IG

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

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
[[1] [1 2] [1 2 3] [1 2 3 4] [1 2 3 4 5]]
источник