(selector [m]) Builds a selecting-fn from m, a map destructuring form that must include one or more of the :select, :all, :missing, and :excess directives. The return function takes a collection, destructures it per m, and returns a map of the result(s). If m has exactly one directive, the result is the value that directive would yield. If m has more than one directive, then it returns a map of directives to values. As in destructuring, :missing controls whether missing required keys throw or are collected. While a map destructuring form may and sometimes must include bindings, selector doesn't produce bindings, thus ignoring the associated directive names. Throws an exception if the argument is not a map.