Size: a a a

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

2021 December 08

I

Igor in Clojure — русскоговорящее сообщество
Пытаюсь вкатиться в макросы и чет не понимаю.
Почему этот код возвращает 1 🤔

(def my-atom (atom 0))
(defmacro foo [body]
 `(do
    (reset! my-atom 1)
    ~@body
    @my-atom))

(foo
(reset! my-atom 2))
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
должно быть

```
(defmacro foo [& body]
```
источник

I

Igor in Clojure — русскоговорящее сообщество
А я просто в скобки () взял ~@body - вроде помогло
источник

D

Dos in Clojure — русскоговорящее сообщество
(do
 (clojure.core/reset! user/my-atom 1)
 clojure.core/reset!
 user/my-atom
 2
 (clojure.core/deref user/my-atom))
источник

D

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

I

Igor in Clojure — русскоговорящее сообщество
Спасибо это помогло
источник

I

Igor in Clojure — русскоговорящее сообщество
Да macroexpand помог разобраться)
источник

VV

Vitaly Vasiliev in Clojure — русскоговорящее сообщество
ребят, а как можно отфильтровать keywords с вектора [foo :bar foo1 :bar], когда foo и foo1 не определены
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
можна поподробней?
источник

VV

Vitaly Vasiliev in Clojure — русскоговорящее сообщество
(filter keyword? '[foo :bar bar :baz])
источник

VV

Vitaly Vasiliev in Clojure — русскоговорящее сообщество
вот так работает
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
ну в таком случае они просто стринги нет?
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
а нет, символ сорян
источник

VV

Vitaly Vasiliev in Clojure — русскоговорящее сообщество
(defn filt [binds] (filter keyword? binds))
источник

VV

Vitaly Vasiliev in Clojure — русскоговорящее сообщество
а вот тут как сделать ? если то, что прилетает в [binds] - это [foo :bar bar :baz]
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
убрать [] вокруг binds ?
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
оно будет резолвить символ
источник

KR

Kostyantin Randomnam... in Clojure — русскоговорящее сообщество
завернуть в трайкетч чо
источник

VV

Vitaly Vasiliev in Clojure — русскоговорящее сообщество
а красивее нет решения?
источник

VV

Vitaly Vasiliev in Clojure — русскоговорящее сообщество
да, их там нет, описался)
источник