Question: Reading through the Wikipedia article on First-Class functions, there is a nice table of language support for various aspects of functional programming: <http://en.wikipedia.org/wiki/First-class_function#Language_support>

JavaScript is listed as not having partial function application. However, there are techniques for creating a function that returns a function that with some of the parameters stored in a closure, ie:

```
var add = function(a, b){
    return a + b;
},
apply = function(fn, a){
    return function(b){ 
        return fn(a, b); 
    }
},
addFive = apply(add, 5);

console.log(addFive(2)); // prints 7

```

Is this not partial function application? If not, could someone please provide an example of partial function application in another language and explain how it is different?

Thanks!

Answer: 
```
var func1 = function(a, b) {
  return a + b;
}

var func2 = func1.bind(undefined, 3);

func2(1); // 4
func2(2); // 5
func2(3); // 6

```

check [docs at developer.mozilla.org](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)
As noted in the other answers, what you describe is currying; it is a form of partial application, as you identify.

However, if what you want is just partial application, you can use underscore.js, which adds a lot functional programming utilities: <http://documentcloud.github.com/underscore/>