Size: a a a

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

2021 November 13

DL

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

DL

Dmytro Lispyvnyi '(🌲... in Clojure — русскоговорящее сообщество
вместо >= в if-ах можно neg? заюзать (свопнув ветки, конечно)
источник

PL

Pavel Lygin in Clojure — русскоговорящее сообщество
чекнул пару ссылок, так?

(def step 0.5)

(defn calculate-trap-area [a b h]
 (* h (/ (+ a b) 2)))

(def m-calc-positive-integral
 (memoize
   (fn [f x]
     (let [a (- x step)
           b x
           calculate-area (calculate-trap-area (f b) (f a) step)]
       (if (neg? a)
         0
         (+ calculate-area (m-calc-positive-integral f a)))))))

(defn integral [func]
 (fn [x]
   (let [modifier (if (neg? x) -1 1)]
     (*
       modifier
       (m-calc-positive-integral func (* x modifier))))))

(def heavy-func (fn [x] (do (println (str "calculate f(" x ")")) (Thread/sleep 100) (* x x))))

(defn -main [& args]

 (println (time ((integral heavy-func) 5)))
 (println (time ((integral heavy-func) -5)))

 (testing "Integral"
   (testing "with positive numbers"
     (is (= 41.875 ((integral #(* % %)) 5))))
   (testing "with negative numbers"
     (is (= -41.875 ((integral #(* % %)) -5))))))
источник

PL

Pavel Lygin in Clojure — русскоговорящее сообщество
спасибо
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Вместо . concat проще написать str
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Второй neg? криво написал
источник

AC

Alexey Cheremisin in Clojure — русскоговорящее сообщество
Так ведь if не кошерно! Хуже goto, не?
источник

PL

Pavel Lygin in Clojure — русскоговорящее сообщество
спасибо, самому что-то глаза резануло😔
источник

SP

Stas P in Clojure — русскоговорящее сообщество
А што такое мемоизе кстати зачем он?
источник

PP

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

PL

Pavel Lygin in Clojure — русскоговорящее сообщество
кэширование, чтобы повторно не вычислять результат функции
источник

SP

Stas P in Clojure — русскоговорящее сообщество
Сорян но сохранить результат исполнения в переменную (окей константу) не вариант?
источник

PL

Pavel Lygin in Clojure — русскоговорящее сообщество
функция вызывается многократно с разными значениями аргумента
источник

SP

Stas P in Clojure — русскоговорящее сообщество
Ну
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
Так там в сущности это и происходит. Только внутри.
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
При этом если функция чистая до определённой степени, снаружи никто ничего толком и не почувствует, а код станет сложнее примерно на одну форму.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Классная штука, но ненужная. Так же, как STM.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
И то нужное, и это нужное.
источник

AK

Azamat Kalimoulline in Clojure — русскоговорящее сообщество
Вариант, конечно, но тут это само автоматом делается. Тебе же надо сохранить результат в зависимости от входных параметров.
источник

DF

Damir Farazetdinov in Clojure — русскоговорящее сообщество
Тихо! У меня план: чуваку надо показать ещё одну ненужную штуку.
То, что она все-таки нужна одному из 752 участников чата - это ему знать не обязательно.
источник