Что-то в #clojure не отвечают, спрошу тут.
Чем бы мне сделать паттерн-матчинг-переписывание данных? Например, (select ?a ["foo"])
⇒ (:foo ?a)
, (select ?a ["foo" "bar"])
⇒ (get-in ?a [:foo :bar])
, (select ?a ["foo"] :or ?b)
⇒ (:a ?a ?b)
, (select ?a ["foo" "bar"] :or ?b)
⇒ (get-in ?a [:foo :bar] ?b)
Я попробовал core.match
и termito
, не получается у меня описать. В core.match
вообще по смешному поводу — не могу заматчить символ, символы в синтаксисе core.match
— привязка к переменной.
@dottedmag может спекой распарсить?
@roman01la Интересный вариант, попробую.
еще есть akar