code: function sortBy(collection, evaluator) {
          var array = map(collection, function(item){return item})
          array.sort(function(a,b){
            var aValue = evaluator(a),
                bValue = evaluator(b)
            return aValue==bValue ? 0 : (aValue>bValue ? 1 : -1)
          })
          var sortedCollection = map(array, function(item){return item}, features.newCollection, features.append)
          return sortedCollection
        }
docs: evaluator?  word?