「キミならどう書く 2.0 - ROUND 1 - ― Lightweight Language Ring」より。せっかくなので JavaScript 1.7 の新機能である Generator を使って書いてみる。 function countUp(n) { n = n || 0; while (true) yield n++; } function filter(iterator, callback, thisObject) { for (var i in iterator) if (callback.call(thisObject, i)) yield i; } function takeWhile(iterator, callback, thisObject) { var result = []; for (var i in iterator) { if (callback.cal