Higher order functionsλ︎
Higher order functions are common in Clojure and spec provides fspec to support spec’ing them.
The value-added-tax function returns an anonymous function that adds the value of tax to the given value.
Define a namespace for the page and require Clojure Spec
Declare a function spec for value-added-tax using clojure.spec.alpha/fspec for the return value:
(s/fdef value-added-tax
  :args (spec/cat :tax-rate number?)
  :ret (spec/fspec :args (s/cat :value number?)
                :ret number?))
The :ret specification uses fspec to declare that the returning function takes and returns a number.