This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-02-05
Channels
- # announcements (1)
- # aws (6)
- # babashka (8)
- # beginners (22)
- # cider (12)
- # clj-kondo (1)
- # cljdoc (15)
- # clojure (109)
- # clojure-dev (6)
- # clojure-europe (40)
- # clojure-losangeles (5)
- # clojure-uk (1)
- # clojurescript (28)
- # data-oriented-programming (3)
- # datahike (9)
- # datalevin (9)
- # holy-lambda (2)
- # juxt (5)
- # lsp (4)
- # malli (2)
- # meander (1)
- # missionary (5)
- # nextjournal (3)
- # off-topic (17)
- # reagent (1)
- # reitit (8)
- # releases (1)
- # sci (16)
- # shadow-cljs (7)
- # sql (9)
- # tools-deps (9)
- # transit (1)
I've got some working code but I'm wondering how I could move the (m/app :keys ?entries)
from the subst and into the pattern.
Working code:
(m/rewrite {:pred-map {'list {:min-length 1
:max-length 1}
'map {:min-length 1
:max-length 1}}
:map {:keys {:a 1}}}
{:pred-map {'map {:min-length ?length
:max-length ?length
:as ?stats}}
:map {:keys (m/app count ?length)
:as ?entries}}
{:entity {:stats ?stats
:entries (m/app :keys ?entries)}})
produces
{:entity {:stats {:min-length 1, :max-length 1}, :entries {:a 1}}}
Changing :as ?entries
to :as {:keys ?entries}
and changing (m/app :keys ?entries)
to ?entries
doesn't match.
{:pred-map {'map {:min-length ?length
:max-length ?length
:as ?stats}}
:map {:keys (m/app count ?length)
:as {:keys ?entries}}}
{:entity {:stats ?stats
:entries ?entries}}
;; nil
This gives nil.
:as (m/app :keys ?entries)
{:entity {:stats {:min-length 1, :max-length 1}, :entries nil}}