JavaScript をコンソール上で実行する
2010-01-30 18:49:04
JavaScript というと、通常は Web ブラウザ上で動作するスクリプト言語として有名ですが、実はコンソール上で動作させることもできます。それを可能にするのは、Rhino という Java で実装された JavaScript エンジンです。
インストール
Debian, Ubuntu ならインストールは超簡単。
$ sudo apt-get install rhino
以上。もちろん Java の実行環境が必要ですが、ここでは割愛。
書いてみる
メモ化されたフィボナッチ数列。strict オプションもあります。
$ vi memoize.js
#!/usr/bin/rhino -strict var fibonacci = function (n) { return n < 2 ? n : fibonacci(n - 2) + fibonacci(n - 1); }; var memoize = function (func, memo) { memo = memo || {}; var _func = function(arg) { if (typeof memo[arg] === 'undefined') { memo[arg] = func(arg); } return memo[arg]; }; return _func; }; fibonacci = memoize(fibonacci); for (var i = 0; i < 10; i += 1) { print(i + ': ' +fibonacci(i)); }
動かしてみる
実行権限を与えれば、通常のプログラムのように実行することができます。
$ chmod +xr memoize.js $ ./memoize.js 0: 0 1: 1 2: 1 3: 2 4: 3 5: 5 6: 8 7: 13 8: 21 9: 34
もっと手軽に動かしてみる
Rhino を直接起動することで、対話式インタプリタとしても使えます。Ruby でいう irb ですね。
$ rhino Rhino 1.7 release 2 2009 05 12 js> '!onihR olleH'.split('').reverse().join(''); Hello Rhino!
何がうれしいか
- バッチ処理を JavaScript で書ける
- ユニットテストを行いやすくなる
- ちょっとしたテストにも便利
月曜は早めに出勤して、仕事用 PC の Cygwin にも入れてみたい。