Size: a a a

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

2020 November 02

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
путается с core-ной функцией
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
@aragaer а ты сейчас только жианом пользуешься?
источник

A

Aragaer in Emacs — русскоговорящее сообщество
ок. Да, только жианом
источник

A

Aragaer in Emacs — русскоговорящее сообщество
тыц. Теперь надо как-то описать древовидную структуру, где в каждом узле есть вес
источник

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
Aragaer
(defn distribute [amount distribution]
 (first
   (reduce-kv
     (fn [[total-amount total-weight] key weight]
       (if (= total-weight 0)
         [total-amount 0]
         (let [amount (/ (* total-amount weight) total-weight)
               used (key amount)]
           [(- total-amount used) (- total-weight weight)])))
     [amount (reduce + (vals distribution))]
     distribution)))
единственное, я не понимаю, разве нельзя всё в один проход сделать?
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
манит чертовка
источник

A

Aragaer in Emacs — русскоговорящее сообщество
в смысле total-weight как сумма весов?
источник

PG

Pig Greenest in Emacs — русскоговорящее сообщество
опять же с паяльником можно будет поковыряться
источник

A

Aragaer in Emacs — русскоговорящее сообщество
тут делается один проход для подсчета суммарного веса, второй проход для распределения
источник

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
Aragaer
тут делается один проход для подсчета суммарного веса, второй проход для распределения
ну вот я и справшиваю, разве нельзя сделать однопроходно?
источник

A

Aragaer in Emacs — русскоговорящее сообщество
только если заранее знать суммарный вес
источник

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
какие входные и выходные данные?
источник

A

Aragaer in Emacs — русскоговорящее сообщество
входные данные - дерево, в каждом узле вес. Надо взять начальную сумму и распределить так, чтобы из каждого узла потомкам досталось пропорционально их весам. Из-за округления может быть не полное распределение, тогда остатки достаются последующим потомкам
источник

A

Aragaer in Emacs — русскоговорящее сообщество
требуется в конце иметь распределение по листьям дерева
источник

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
Aragaer
требуется в конце иметь распределение по листьям дерева
ну да, однопроходное будет сложнее и менее явно
источник

A

Aragaer in Emacs — русскоговорящее сообщество
я пока не придумал, как на кложе наглядно такое дерево задать, на питоне вот пример: https://gitlab.com/personal-assistant-bot/experimental/finances/savings-rebalance/-/blob/master/example.py#L36
источник

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
список хэшмапов
источник

A

Aragaer in Emacs — русскоговорящее сообщество
тут это словари, ключами являются либо функции "распределить по поддереву", либо "это лист, распределить в нем"
источник

A

Aragaer in Emacs — русскоговорящее сообщество
словарь, потому что с весами
источник

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
например список хэшмапов вида: {:children [] :weight 3 :handler handle-fn}?
источник