In a functional application, should you wrap common higher-level functions in domain-meaningful names or should you leave them "bare"?
For instance, if you have a list of Addresses, and "sorted by zipcode" is a common domain-meaningful ordering (targeted mailers, etc.), is it preferable to write:
val sortedCustomers = customers.sort((a,b) => (a.zipCode compareTo b.zipCode) < 0)
Or is it better to create a function
sortedByZip(cs : Iterable[Customer]) : Seq[Customer]?
Creating the function has the advantage of being (minutely) more abstract, but has the disadvantage of being opaque, creating a name to remember, etc.
I'm asking in the context of a significant professional codebase, one that you intend to live for years, be as maintainable as possible, be "true" to the expectations of functional programmers, etc.