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 <christo...@cgrand.net> 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 <a...@puredanger.com> 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 clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > 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 clojure+unsubscr...@googlegroups.com. > 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 clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with your > first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > 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 clojure+unsubscr...@googlegroups.com. > 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 clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com 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 clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.