I just discovered Underscore.js. Why didn't I already know this existed?
-- _.reduce() provides what I think of as foldLeft (probably the most important utility-belt function for working in collections)
-- A general _.filter() function for collections
-- Array-manipulation functions that treat Arrays like Lists in most languages (head, tail, zip, and that sort of thing)
-- _.partial binds some of the arguments to a function, providing basic currying
-- A general-purpose _memoize() function, which is one of the easiest and safest ways to optimize a lot of problems
And so on. I gather that it is designed to complement jQuery, using _ as the magic character where jQuery uses $.