underscore.js/lodash.js

JavaScriptで学ぶ関数型プログラミング

JavaScriptで学ぶ関数型プログラミング

JavaScriptで学ぶ関数型プログラミングを読んで(全部読んでないけど)から、ちょっとした便利ライブラリとしてしか使えていなかったunderscore.js/lodash.jsをドキュメントを見ながらいろいろ試してみた。


underscore.jsのドキュメントを見てるけど、使ってるのはlodash.jsって多分みんなそうだよねえ?でもbackbone.js使うときはunderscore.js使うよねえ?まあいいや。


本を全部読んでるわけじゃないからまだわかんないけど、関数型を意識しながら(?)メソッドを見ていったら結構便利な関数が多々あることに気がついた。

  • partial
  • compose
  • clone
  • extends
  • chain
  • value

上の二つ以外はただの便利関数のような気がするけど……

partial

数年前にやった部分適用の関数?でいいのかな。

var calc = _.partial(function(a, b) {
  console.log(a + b);
}, 5);

calc(5);  // => 10

使いどころ作れば割と使えるかも。

compose

関数の戻り値を次の関数に渡していく関数?うまく説明できない。

var plus = _.compose(function(a) {
  return a + 1;
}, function(b) {
  return b + 1;
});

console.log(plus(1));  // => 3


ちょっとだけ関数型に触れられた気がする。あと利点とかもわかって来たような気がする……けど関数型の利点じゃないのかなこれは。