Combining specifications with and and orλ︎
clojure.core/and function and
clojure.core/or function can be used to define a specification with multiple parts.
Conform to One or more specificationsλ︎
A specification for residential address included either a house number or name. The
clojure.core/or function allows either type of value to be used and conform to the specification.
spec/or then unique keys are required for each possible type of value. Keys are used to explain where a failure occurred if values do not conform to the specification.
If specifications are uses as the options in the
clojure.spec.alpha/or then those specification names are used as the keys to explain where failure to conform to the specification happened.
Conform to all specificationsλ︎
Create a composite specification using
clojure.spec.alpha/and when all specifications should be conformed by the values
For an arranged banking overdraft limit, the value should be a positive number, that is an integer type and is less than 1000.
If a value does not conform to any of the three specifications then the value fails the