Size: a a a

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

2020 November 28

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Oleg Roshchupkin
"Интернятся" – это именно вот тот код по ссылке выше.
Да, читал, спасибо
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
The2lb3oz4dr10½grOfHedgehogs
Можно интересную статистику собирать:
В чистом репле создано 2608 кивордов
В только что стартанувшем моём рабочем проекте с его зависимостями создано 23472 киворда
А после прогонки всех тестов 29236 кивордов
В clojure.lang.Var есть static public volatile int rev
(обратиться получается можно просто clojure.lang.Var/rev)

Который инкрементится при любых биндах/перебиндах var'ов


После старта репла в пустом проекте этот rev = 5244
А на рабочем проекте 13871
Тоже в копилку к статистике по кол-ву кивордов :)
источник
2020 November 29

Г

Григорий in Clojure — русскоговорящее сообщество
Всем привет. Подскажите, а можно ли сравнивать функции примерно следующим образом:
(defn example [f ...]
    (cond (= (map +) f)
               (print "example") …)
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
это же разные обьекты будут, не?
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Григорий
Всем привет. Подскажите, а можно ли сравнивать функции примерно следующим образом:
(defn example [f ...]
    (cond (= (map +) f)
               (print "example") …)
нельзя
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Григорий
Всем привет. Подскажите, а можно ли сравнивать функции примерно следующим образом:
(defn example [f ...]
    (cond (= (map +) f)
               (print "example") …)
Я не понял что за образ сравнения фукнций у тебя. Ты можешь сравнить фукнции подав в них одинаковые аргументы и сравнив результаты
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Вот так:

(def f1 +)
(def f2 (comp - - +))

(def fns [f1 f2])

(def tests [[1 2 3] [] [1]])

(->> tests
    (map (->> fns
              (map #(partial apply %))
              (apply juxt)))
    (every? (partial apply =)))
;; => true
источник

Г

Григорий in Clojure — русскоговорящее сообщество
Я пишу решение задач ЛП симплекс-методом. Но мне хотелось бы сохранять не только результат вычислений в каждом случае, но и как оно было получено. То есть, например, хранить в программе, чейнить, передавать, а потом парсить мапу { value ast } где ast — будет структурой, описанной спекой как
(spec/def ::ast
 (spec/map-of keyword?
              (spec/or
               :node (spec/coll-of ::ast)
               :leaf (spec/coll-of (partial (comp not sequential?))))))
Например: {:minus [{:times [4 5 6]} {:plus [ 1 2 3 ]}]}
источник

Г

Григорий in Clojure — русскоговорящее сообщество
Я хочу некоторую оберточку над обычным, скажем, (map +) сделать, которая запихнет в value резульатат, а в ast узел.
источник

Г

Григорий in Clojure — русскоговорящее сообщество
А потом парсер для ast написать, для экспорта в tex.
источник

Г

Григорий in Clojure — русскоговорящее сообщество
Но судя по всему придется писать не как (map +), а кейвордами задавать.
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Григорий
Но судя по всему придется писать не как (map +), а кейвордами задавать.
'(map +)
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Сравнивать символы
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Эвалить если надо
источник

Г

Григорий in Clojure — русскоговорящее сообщество
Ну да. Если передавать quote, тогда все норм.
источник

Г

Григорий in Clojure — русскоговорящее сообщество
Я хотел передать не-quote, а внутри функции ее quote-нуть. Так не получается.
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
...что ожидаемо, вычисление значений аргументов же происходит до того, как функция начинает выполняться.
А вот если сделать макрос...
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Григорий
Я пишу решение задач ЛП симплекс-методом. Но мне хотелось бы сохранять не только результат вычислений в каждом случае, но и как оно было получено. То есть, например, хранить в программе, чейнить, передавать, а потом парсить мапу { value ast } где ast — будет структурой, описанной спекой как
(spec/def ::ast
 (spec/map-of keyword?
              (spec/or
               :node (spec/coll-of ::ast)
               :leaf (spec/coll-of (partial (comp not sequential?))))))
Например: {:minus [{:times [4 5 6]} {:plus [ 1 2 3 ]}]}
Запоминай имя функции и параметры например
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Григорий
Я хочу некоторую оберточку над обычным, скажем, (map +) сделать, которая запихнет в value резульатат, а в ast узел.
‘{:mapplus params}’
источник

AC

Anton Chikin in Clojure — русскоговорящее сообщество
Квотнутое проблематично сравнивать
источник