user=> (s/def ::a (s/or :r (s/cat :a ::a)
:k keyword?))
:user/a
user=> (binding [s/*recursion-limit* 2]
(map first (s/exercise ::a 10)))
(((:B)) :? (:+/K) (:Xc_D.__.+HC/JaCD) ((:*3)) :gJ1z.o.+?.lC0/!-ZDN9
:D.-?I.q8.z/-5* (:F67jy+2M.bB_.h62Cp+?._X?b6gv4.x+7.Gz_6.v9Tt15/*)
:!4J??+/-8?8_- ((:*JZAg**x!.qE3-.sh._?e/_!?T)))
user=> (binding [s/*recursion-limit* 2]
(map first (s/exercise ::a 10 {[:k] (gen/return :k)
[:r :a :k] (gen/return :a)
[:r :a :r :a :k] (gen/return :aa)})))
(:k (:a) ((:aa)) :k :k :k :k :k (:a) :k)
I’ll have to think about the suffixes
> On May 25, 2016, at 7:56 AM, Christophe Grand <[email protected]> wrote:
>
> Speaking of recursive definitions: how to provide an override in a recursive
> spec?
> Would it be possible to have path suffixes (in addition to paths not in
> replacement of) in the override map?
>
> Thanks,
>
> Christophe
>
> On Mon, May 23, 2016 at 6:16 PM, Alex Miller <[email protected]> wrote:
> Yes, you can create recursive definitions by registering a spec that refers
> to itself via registered name (a namespaced keyword).
>
>
> On Monday, May 23, 2016 at 11:13:24 AM UTC-5, Andrey Grin wrote:
> Is it planned to support recursive definitions? Example from.plumatic schema:
>
> (def BinaryTree
>
> (
> maybe ;; any empty binary tree is represented by nil
>
> {
> :value
> long
>
> :left (recursive
> #'BinaryTree)
>
> :right (recursive #'BinaryTree)}))
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to [email protected]
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
>
>
>
> --
> On Clojure http://clj-me.cgrand.net/
> Clojure Programming http://clojurebook.com
> Training, Consulting & Contracting http://lambdanext.eu/
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to [email protected]
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.