Partial Application
In Javascript
(and why I like it)
Dude, who are you?
A’braham (Ah-brah-haum) Barakhyahu (Ba-rock-yahu)
Web developer (js, C# rest services)
jsGrunt
Vim kiddie
FP grasshopper
First Class Functions
Pass functions as parameters into
other functions
function shalom() {
return ‘Shalom’;
}
function sayToConsole(someGreeting) {
console.log(someGreeting());
}
sayToConsole(shalom);
Functions can return functions
function sayToConsole(greeting) {
return function(message) {
console.log( greeting + ‘ ‘ + message);
}
}
var greetBobAndSay = sayToConsole(‘Hi Bob!’);
greetBobAndSay(‘I have fantastic pants’);
Contrived Examples Ahead!
Instead of this
function add(x,y) {
return x + y;
}
for(var i = 0; i < 6 ; i++) {
console.log(add(5,i));
}
You could do this
function add(x) {
return function(y) {
return x + y;
}
}
var add5To = add(5);
for(var i = 0; i < 6 ; i++) {
console.log(add5To(i));
Or use underscore/lodash/
function add(x,y) {
return x + y;
}
var add5To = _.partial(add,5);
for(var i = 0; i < 6 ; i++) {
console.log(add5To(i));
}

[other functional library here]
little closer to a real-world example
sample
Refernces for more
Functional Javascript by Michael Fogus -

http://store.

kobobooks.com/en-us/books/Functional-JavaScript/

Lodash’s partialRight Underscore’s partial Currying vs. Partial Application -

http://lodash.com/docs#partialRight

http://underscorejs.org/#partial

http://www.2ality.com/2011/09/currying-

vs-part-eval.html

Partial Application in Javascript in-javascript/

http://ejohn.org/blog/partial-functions-
Thank you for you patience!
A’braham Barakhyahu
@blessYAHU
barakhyahu@gmail.com

Partial Application in Javascript (and why I like it)

  • 1.
  • 2.
    Dude, who areyou? A’braham (Ah-brah-haum) Barakhyahu (Ba-rock-yahu) Web developer (js, C# rest services) jsGrunt Vim kiddie FP grasshopper
  • 3.
  • 4.
    Pass functions asparameters into other functions function shalom() { return ‘Shalom’; } function sayToConsole(someGreeting) { console.log(someGreeting()); } sayToConsole(shalom);
  • 5.
    Functions can returnfunctions function sayToConsole(greeting) { return function(message) { console.log( greeting + ‘ ‘ + message); } } var greetBobAndSay = sayToConsole(‘Hi Bob!’); greetBobAndSay(‘I have fantastic pants’);
  • 6.
  • 7.
    Instead of this functionadd(x,y) { return x + y; } for(var i = 0; i < 6 ; i++) { console.log(add(5,i)); }
  • 8.
    You could dothis function add(x) { return function(y) { return x + y; } } var add5To = add(5); for(var i = 0; i < 6 ; i++) { console.log(add5To(i));
  • 9.
    Or use underscore/lodash/ functionadd(x,y) { return x + y; } var add5To = _.partial(add,5); for(var i = 0; i < 6 ; i++) { console.log(add5To(i)); } [other functional library here]
  • 10.
    little closer toa real-world example sample
  • 11.
    Refernces for more FunctionalJavascript by Michael Fogus - http://store. kobobooks.com/en-us/books/Functional-JavaScript/ Lodash’s partialRight Underscore’s partial Currying vs. Partial Application - http://lodash.com/docs#partialRight http://underscorejs.org/#partial http://www.2ality.com/2011/09/currying- vs-part-eval.html Partial Application in Javascript in-javascript/ http://ejohn.org/blog/partial-functions-
  • 12.
    Thank you foryou patience! A’braham Barakhyahu @blessYAHU barakhyahu@gmail.com