> Would you ever expect to use fdef/instrument active in production for > validation
No, definitely not. It’s that kind of runtime checking (and expense) that gives some dynamic lang checking systems a bad rep. The philosophy is - generative testing has made sure your function complies with the specs. So, testing the :ret and :fn properties over and over is redundant and serves no point. OTOH, you may encounter user- or externally-supplied data at runtime and want to use the facilities of spec to validate/process it. Then you can use valid? or conform *explicitly* to do so. The intent is that running with wrappers (instrumentation) should be done only during testing. > On May 24, 2016, at 7:43 PM, Elliot <ell...@deck36.net> wrote: > > Super super excited for this feature, thanks so much for creating this. > > In the runtime-validation case, the guide mentions: > > 1. Calling `valid?` in a precondition > 2. Calling `conform` in the fn implementation > > However neither of these appear to use the `fdef`/`instrument` combo, which > seems the closest to "type annotating" the function. Would you ever expect > to use fdef/instrument active in production for validation, or is that a > misunderstanding of its use? > > Thanks! > > - E > > > On Tuesday, May 24, 2016 at 11:12:59 AM UTC-7, scott stackelhouse wrote: > I restructured my data to make this section an optional sub-map, which I > think is actually better anyway. > > On Tuesday, May 24, 2016 at 11:08:27 AM UTC-7, scott stackelhouse wrote: > Ok. > > Thanks all who have worked on this, btw. It is incredibly timely for me and > is already great help for a work project. > > --Scott > > On Tuesday, May 24, 2016 at 10:57:26 AM UTC-7, Rich Hickey wrote: > ‘and' and ‘or’ are not currently supported in :opt > > > > On May 24, 2016, at 1:45 PM, scott stackelhouse <scott.sta...@gmail.com> > > wrote: > > > > I'm having a problem writing a spec for a map with some required keywords > > and some optional keywords. The caveat here is that the optional keywords > > are all or none... that is they are optional but if one is present they > > must all be present. > > > > What I tried to write was: > > > > (s/keys :req [::a ::b ::c] :opt [(and ::d ::e ::f)]) > > > > and that fails an assertion. It appears that the logicals (and, or) are > > not allowed in the optional section? > > > > Am I thinking about this in the wrong way? > > > > --Scott > > > > -- > > You received this message because you are subscribed to the Google > > Groups "Clojure" group. > > To post to this group, send email to clo...@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+u...@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+u...@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. -- 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.