JavaScriptの勉強
JavaScriptを勉強することにした。
無名関数で再帰できたりジェネレーターがあったりしてちょっとたのしい。
フィボナッチ
arguments.calleeを使うと自分自身の関数を参照できる。
var fib = (function() { var memo = {1: 1, 2: 1}; return function(n) { return (memo[n] || (memo[n] = arguments.callee(n - 2) + arguments.callee(n - 1))); }; })();
range
yieldを使うとジェネレーターを作れる。
function range(start, stop) { for (let i = start; i < stop; ++i) { yield i; } } for each (let i in range(0, 10)) { alert(i); }