The first use is a namespace alias and the second is a var - they don't overlap in usage.
On Tuesday, May 24, 2016 at 2:28:11 AM UTC-5, Atamert Ölçgen wrote: > > Isn't s redefined in this example: > > user=> (require '[clojure.spec :as s]) > (s/def ::even? (s/and integer? even?)) > (s/def ::odd? (s/and integer? odd?)) > (s/def ::a integer?) > (s/def ::b integer?) > (s/def ::c integer?) > (def s (s/cat :forty-two #{42} > :odds (s/+ ::odd?) > :m (s/keys :req-un [::a ::b ::c]) > :oes (s/* (s/cat :o ::odd? :e ::even?)) > :ex (s/alt :odd ::odd? :even ::even?))) > user=> (s/conform s [42 11 13 15 {:a 1 :b 2 :c 3} 1 2 3 42 43 44 11]) > {:forty-two 42, > :odds [11 13 15], > :m {:a 1, :b 2, :c 3}, > :oes [{:o 1, :e 2} {:o 3, :e 42} {:o 43, :e 44}], > :ex {:odd 11}} > > > in http://clojure.org/about/spec > > > On Mon, May 23, 2016 at 5:12 PM, Rich Hickey <richhic...@gmail.com> wrote: > >> Introducing clojure.spec >> >> I'm happy to introduce today clojure.spec, a new core library and support >> for data and function specifications in Clojure. >> >> Better communication >> >> Clojure is a dynamic language, and thus far we have relied on >> documentation or external libraries to explain the use and behavior of >> functions and libraries. But documentation is difficult to produce, is >> frequently not maintained, cannot be automatically checked and varies >> greatly in quality. Specs are expressive and precise. Including spec in >> Clojure creates a lingua franca with which we can state how our programs >> work and how to use them. >> >> More leverage and power >> >> A key advantage of specifications over documentation is the leverage they >> provide. In particular, specs can be utilized by programs in ways that docs >> cannot. Defining specs takes effort, and spec aims to maximize the return >> you get from making that effort. spec gives you tools for leveraging specs >> in documentation, validation, error reporting, destructuring, >> instrumentation, test-data generation and generative testing. >> >> Improved developer experience >> >> Error messages from macros are a perennial challenge for new (and >> experienced) users of Clojure. specs can be used to conform data in macros >> instead of using a custom parser. And Clojure's macro expansion will >> automatically use specs, when present, to explain errors to users. This >> should result in a greatly improved experience for users when errors occur. >> >> More robust software >> >> Clojure has always been about simplifying the development of robust >> software. In all languages, dynamic or not, tests are essential to quality >> - too many critical properties are not captured by common type systems. >> spec has been designed from the ground up to directly support generative >> testing via test.check https://github.com/clojure/test.check. When you >> use spec you get generative tests for free. >> >> Taken together, I think the features of spec demonstrate the ongoing >> advantages of a powerful dynamic language like Clojure for building robust >> software - superior expressivity, instrumentation-enhanced REPL-driven >> development, sophisticated testing and more flexible systems. I encourage >> you to read the spec rationale and overview >> http://clojure.org/about/spec. Look for spec's inclusion in the next >> alpha release of Clojure, within a day or so. >> >> Note that spec is still alpha, and some details are likely to change. >> Feedback welcome. >> >> I hope you find spec useful and powerful! >> >> Rich >> >> -- >> 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. >> > > > > -- > Kind Regards, > Atamert Ölçgen > > ◻◼◻ > ◻◻◼ > ◼◼◼ > > www.muhuk.com > -- 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.