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()); }