One thing I think could be useful is to port Haskell's curry and
uncurry. This is basically a convenience method for (un)wrapping an
.apply on a function object:

function curry(f) {
    return function () {
        // first convert arguments to a regular array
        var args = Array.prototype.slice.call(arguments);
        return f(args);
    }
}

function uncurry(f) {
    return function (args) {
        return f.apply(this, args);
    }
}

Example use:
test = [ [10, 1],
         [20, 2],
         [30, 3] ];

assertEqual(map(uncurry(operator.plus), test), [11, 22, 33]);

// assume join is a function that takes a list and returns a string
// with the elements joined with some delimiter

f = curry(partial(join, _, ", "))
assert(f("Bond", "James Bond") == "Bond, James Bond")

Does anyone else think this could be useful? What module would it fit?
Base already has a lot of functional stuff (compose, partial, map &
friends) - I'm wondering if it fits there or if all the functional
stuff should be in a seperate module MochiKit.Functional - as Python
seems to be heading.

cheers,
Arnar

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"MochiKit" group.
To post to this group, send email to mochikit@googlegroups.com
To unsubscribe from this group, send email to 
mochikit+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/mochikit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to