Born Too Late

Yuya's old tech blog.

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!

何がうれしいか

月曜は早めに出勤して、仕事用 PC の Cygwin にも入れてみたい。