FizzBuzz

最近FizzBuzzをblogで書くといいよみたいな流れになっている(曲解)ので

// JavaScript1.8前提
new Array(101)
.join(',')
.split(',')
.map(function(n,i) i%3 ? n : n + "Fizz")
.map(function(n,i) i%5 ? n : n + "Buzz")
.map(function(n,i) n || i)
.slice(1,101)
.join('\n');


ジェネレータ式も試してみた。無限FizzBuzzイテレータを生成し、100回だけ呼んでみた。

// JavaScript1.8前提
let it = (
(function(n,i) n || i)(
(function(n,i) i%5 ? n : n + "Buzz")(
(function(n,i) i%3 ? n : n + "Fizz")('',i),i),i)
 for (i in (function (i) {
  while(true){
    yield i++;
  }
})(1) )
);

for(let i = 0; i < 100; i++){
console.info(it.next());
}


うわ、なんだこれキモイ

// JavaScript1.8前提
let it = (
i.n || i.i for each (i in (
{n:(i.i%5 ? i.n : i.n + 'Buzz'),i:i.i} for each (i in (
{n:(i.i%3 ? i.n : i.n + 'Fizz'),i:i.i} for each (i in (
{n:'',i:i} for each (i in (function (i) {
  while(true){
    yield i++;
  }
})(1)))
))
))
));

for(let i = 0; i < 100; i++){
console.info(it.next());
}