API for clojure.core.specs.alpha - core.specs.alpha 0.2.63-SNAPSHOT (in development)


Full namespace name: clojure.core.specs.alpha

Overview





Public Variables and Functions



even-number-of-forms?

function
Usage: (even-number-of-forms? forms)
Returns true if there are an even number of forms in a binding vector

    
    
    Source
  

Specs



::as

spec
(and simple-symbol? (not= '& %))


::as-alias

spec
simple-symbol?


::binding

spec
(cat :form ::binding-form :init-expr any?)


::binding-form

spec
(or
 :local-symbol ::local-name
 :seq-destructure ::seq-binding-form
 :map-destructure ::map-binding-form)


::bindings

spec
(and vector? even-number-of-forms? (* ::binding))


::class-ident

spec
(or :class simple-symbol? :class-name string?)


::constructors

spec
(map-of ::signature ::signature)


::defn-args

spec
(cat
 :fn-name simple-symbol?
 :docstring (? string?)
 :meta (? map?)
 :fn-tail (alt
           :arity-1 ::params+body
           :arity-n (cat
                     :bodies (+ (spec ::params+body))
                     :attr-map (? map?))))


::exclude

spec
(coll-of simple-symbol?)


::expose

spec
(keys :opt-un [::get ::set])


::exposes

spec
(map-of simple-symbol? ::expose)


::extends

spec
simple-symbol?


::factory

spec
simple-symbol?


::filters

spec
(&
  (* (cat :clojure.spec.alpha/k keyword? :clojure.spec.alpha/v any?))
  :clojure.spec.alpha/kvs->map
  mspec__2540__auto__)


::get

spec
simple-symbol?


::impl-ns

spec
simple-symbol?


::implements

spec
(coll-of simple-symbol? :kind vector?)


::import-list

spec
(* (alt :class simple-symbol? :package-list ::package-list))


::init

spec
symbol?


::keys

spec
(coll-of ident? :kind vector?)


::libspec

spec
(alt
 :lib simple-symbol?
 :lib+opts (spec
             (cat
              :lib simple-symbol?
              :options (keys* :opt-un [::as ::refer ::as-alias]))))


::load-impl-ns

spec
boolean?


::local-name

spec
(and simple-symbol? (not= '& %))


::main

spec
boolean?


::map-binding

spec
(tuple ::binding-form any?)


::map-binding-form

spec
(merge ::map-bindings ::map-special-binding)


::map-bindings

spec
(every
  (or
   :map-binding ::map-binding
   :qualified-keys-or-syms ::ns-keys
   :special-binding (tuple #{:as :or :syms :keys :strs} any?))
  :kind
  map?)


::map-special-binding

spec
(keys :opt-un [::as ::or ::keys ::syms ::strs])


::method

spec
(and
  vector?
  (cat
   :method-name simple-symbol?
   :param-types ::signature
   :return-type ::class-ident))


::methods

spec
(coll-of ::method :kind vector?)


::name

spec
simple-symbol?


::ns-clauses

spec
(*
  (alt
   :refer-clojure ::ns-refer-clojure
   :require ::ns-require
   :import ::ns-import
   :use ::ns-use
   :refer ::ns-refer
   :load ::ns-load
   :gen-class ::ns-gen-class))


::ns-form

spec
(cat
 :ns-name simple-symbol?
 :docstring (? string?)
 :attr-map (? map?)
 :ns-clauses ::ns-clauses)


::ns-gen-class

spec
(cat
 :clause #{:gen-class}
 :options (keys*
            :opt-un
            [::name
             ::extends
             ::implements
             ::init
             ::constructors
             ::post-init
             ::methods
             ::main
             ::factory
             ::state
             ::exposes
             ::prefix
             ::impl-ns
             ::load-impl-ns]))


::ns-import

spec
(cat :clause #{:import} :classes ::import-list)


::ns-keys

spec
(tuple
  (and qualified-keyword? #(-> % name #{"syms" "keys"}))
  (coll-of simple-symbol? :kind vector?))


::ns-load

spec
(cat :clause #{:load} :libs (* string?))


::ns-refer

spec
(cat :clause #{:refer} :lib simple-symbol? :refer-filters ::filters)


::ns-refer-clojure

spec
(cat :clause #{:refer-clojure} :refer-filters ::filters)


::ns-require

spec
(cat
 :clause #{:require}
 :body (+
         (alt
          :libspec ::libspec
          :prefix-list ::prefix-list
          :flag #{:verbose :reload :reload-all})))


::ns-use

spec
(cat
 :clause #{:use}
 :libs (+
         (alt
          :libspec ::use-libspec
          :prefix-list ::use-prefix-list
          :flag #{:verbose :reload :reload-all})))


::only

spec
(coll-of simple-symbol?)


::or

spec
(map-of simple-symbol? any?)


::package-list

spec
(cat :package simple-symbol? :classes (+ simple-symbol?))


::param-list

spec
(and
  vector?
  (cat
   :params (* ::binding-form)
   :var-params (? (cat :ampersand #{'&} :var-form ::binding-form))))


::params+body

spec
(cat
 :params ::param-list
 :body (alt
        :prepost+body (cat :prepost map? :body (+ any?))
        :body (* any?)))


::post-init

spec
symbol?


::prefix

spec
string?


::prefix-list

spec
(cat :prefix simple-symbol? :libspecs (+ ::libspec))


::quotable-import-list

spec
(*
  (alt
   :class (quotable simple-symbol?)
   :package-list (quotable ::package-list)))


::refer

spec
(or :all #{:all} :syms (coll-of simple-symbol?))


::rename

spec
(map-of simple-symbol? simple-symbol?)


::seq-binding-form

spec
(and
  vector?
  (cat
   :forms (* ::binding-form)
   :rest-forms (? (cat :ampersand #{'&} :form ::binding-form))
   :as-form (? (cat :as #{:as} :as-sym ::local-name))))


::set

spec
simple-symbol?


::signature

spec
(coll-of ::class-ident :kind vector?)


::state

spec
simple-symbol?


::strs

spec
(coll-of simple-symbol? :kind vector?)


::syms

spec
(coll-of symbol? :kind vector?)


::use-libspec

spec
(alt
 :lib simple-symbol?
 :lib+opts (spec
             (cat
              :lib simple-symbol?
              :options (keys*
                         :opt-un
                         [::as ::refer ::exclude ::only ::rename]))))


::use-prefix-list

spec
(cat :prefix simple-symbol? :libspecs (+ ::use-libspec))
Logo & site design by Tom Hickey.
Clojure auto-documentation system by Tom Faulhaber.