Size: a a a

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

2020 November 02

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
Aragaer
чтобы сделать get-price для евро мне нужна extra, в которой есть рубль
(declare rates)

(defn convert [count from to]
 (/ (* count (from rates))
    (to rates)))



(def rates
 (let [base-rates {:usd 1
                   :rur 0.012}]
   (assoc base-rates :eur 1.160)))

(convert 1 :usd :rur)

(convert 1 :eur :rur)

у меня работает…
источник

A

Aragaer in Emacs — русскоговорящее сообщество
у меня нет цифры 0.012 и 1.16
источник

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
Aragaer
у меня нет цифры 0.012 и 1.16
тогда сделай rates функцией
источник

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
чтобы она каждый раз вызывалась
источник

A

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

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
Aragaer
ну или точнее у меня нету 1.16, для ее вычисления нужно вызвать функцию
(declare rates)

(defn convert [count from to]
 (/ (* count (from (rates)))
    (to (rates))))



(defn rates []
 (let [base-rates {:usd 1
                   :rur 0.012}]
   (assoc base-rates :eur 1.160)))

так работает?
источник

A

Aragaer in Emacs — русскоговорящее сообщество
вместо 1.16 надо написать вызов функции, в котором дергается convert
источник

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
Aragaer
вместо 1.16 надо написать вызов функции, в котором дергается convert
из чего в чего?
источник

A

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

DL

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

A

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

PG

Pig Greenest in Emacs — русскоговорящее сообщество
¥αros!αν
кароче, этому как-то мешал evil, лол
зло злит
источник

PG

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

A

Aragaer in Emacs — русскоговорящее сообщество
вот реализация без мутабельности:
(defn get-price-early [item EXTRA]
 (let [{:keys [figi currency]} item
       currency-cost (get EXTRA (symbol currency))
       price (figi->price figi)]
   (* price currency-cost)))

(def EXTRA-BASE {'USD 1,
                'RUB RUB})

(def EXTRA
 (merge EXTRA-BASE
        {'EUR (get-price-early (get FIGI "EUR_RUB__TOM") EXTRA-BASE)}
        {'XAU (* RUB 4909.81),
         'XAG (* RUB 62.09)}))

(defn get-price [item]
 (get-price-early item EXTRA))
источник

DL

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

DL

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

DL

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

DL

Dmytro Lispyvnyi '(🌲... in Emacs — русскоговорящее сообщество
Aragaer
вот реализация без мутабельности:
(defn get-price-early [item EXTRA]
 (let [{:keys [figi currency]} item
       currency-cost (get EXTRA (symbol currency))
       price (figi->price figi)]
   (* price currency-cost)))

(def EXTRA-BASE {'USD 1,
                'RUB RUB})

(def EXTRA
 (merge EXTRA-BASE
        {'EUR (get-price-early (get FIGI "EUR_RUB__TOM") EXTRA-BASE)}
        {'XAU (* RUB 4909.81),
         'XAG (* RUB 62.09)}))

(defn get-price [item]
 (get-price-early item EXTRA))
(if (contains? EXTRA thing) (get EXTRA thing) излишне,
(or (get EXTRA thing)
   (get-price (get FIGI thing)))
источник

A

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

A

Aragaer in Emacs — русскоговорящее сообщество
а для :keys есть какое-нибудь :as? А то name перекрывается
источник