Size: a a a

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

2021 August 12

SP

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

SP

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

SP

Stas P in Clojure — русскоговорящее сообщество
это же функция в трединге
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
*%1 (не %, иначе это будут 1 и 2 аргументы)
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
алгоритм «сложения» какой (если в виде функции)?
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Можно, но надо обернуть ещё в скобки функцию
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
ты же хотел без функции, а показываешь с функцией 😊
источник

SP

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

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Опять же, такую функцию можно в лет вынести и применить в макро
источник

SP

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

SP

Stas P in Clojure — русскоговорящее сообщество
я хотел без выноса функции.
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
В тред-макросах есть фича — если форма, в которую должен быть помещён результат, будет состоять из одного элемента, то скобки вокруг этого элемента можно опустить. А можно и оставить, получится полная форма. Для форм из >1 элемента или если этот элемент список (вызов функции высшего порядка типа juxt), то скобки обязательны.
Собственно, поэтому голые кейворды там и работают.
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
но можно и без функции
(-> invoice :company :tradeName :contact :name (as-> name (str (:first name) (:last name))))
источник

SP

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

SP

Stas P in Clojure — русскоговорящее сообщество
сделал так но твой вариант имхо красивше!
источник

PP

Pavel Peganov in Clojure — русскоговорящее сообщество
И мысль на будущее — в зависимости от контекста, порядок компонент имени может быть разным в разных локалях. Скорее всего сейчас решать эту проблему рано, но сильно опираться именно на такой порядок не стоит 🙂
Если система долго проживёт, возможно там будет интерполяция в шаблон, получаемый из каталога строк-переводов, куда можно передать прям мапку.
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
Но все же делать вложенные стрелки плохо, читаемость потом ужасная
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
и эффективнее
(clojure.walk/macroexpand-all '(-> invoice :company :tradeName :contact :name 
                                  (as-> name (str (:first name) (:last name)))))
=> (let* [name (:name (:contact (:tradeName (:company invoice))))] (str (:first name) (:last name)))
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
зависит от
источник

MB

Mike Bohdan in Clojure — русскоговорящее сообщество
(comp (partial apply str) (juxt :first :last))
источник