Valentineは、型チェックや関数のイテレーション、ウォーターフォールやキュー、並列処理などの機能を提供するJavaScriptライブラリです。ScalaやHaskell、F#のような関数型言語っぽく記述することもできるそうです。
Valentineは、Matadorの開発者 ded 氏が開発し、Matadorでもも使われています。
npmでインストールします。
$ npm install valentine npm http GET https://registry.npmjs.org/valentine npm http 304 https://registry.npmjs.org/valentine valentine@1.5.1 ./node_modules/valentine
まずはサンプルを CoffeeScript で書いてみます。
sample.coffee
v = require "valentine" a = v(["a", "b", "c"]).map (letter) -> letter.toUpperCase() .join " " console.log a
「文字a,b,cの配列をmap関数で一文字ずつ大文字に変換してスペースで結合する」を繋げて書けます。
実行してみます。
$ coffee sample.coffee A B C
Valentineのwaterfallを使ってみます。
waterfall.coffee
v = require "valentine" v.waterfall ((callback) -> callback null, "提案", "却下" ),((a, b, callback) -> console.log a console.log b callback null, "酒" ),((c, callback) -> console.log c callback null, "二日酔い" ), (err, result) -> console.log result
waterwallは上から順番に実行してくれます。次の関数へ引数とコールバックを投げることで次々と実行されます。
$ coffee waterfall.coffee 提案 却下 酒 二日酔い
キュー実行の queue や並列実行の parallel もあり便利なライブラリです。Matadorでも使われていますので、覚えていて損はないと思います。
0 件のコメント:
コメントを投稿