#ES6の標準的な書き方でFizzBuzz書くメモ
関数をくっつけるためのシンタックスシュガーが標準で欲しい
- 変更(4/15)ykztsさんがspread構文で書いたらシンプルになることを教えてくれました
fizzbuzz.js
const compose = ([f, ...fs]) => f? f(compose(fs)): (x) => x;
const num = () => (x) => x.toString();
const fizz = (f) => (x) => x % 3 == 0? 'Fizz': f(x);
const buzz = (f) => (x) => x % 5 == 0? 'Buzz': f(x);
const fizzbuzz = (f) => (x) => x % 3 == 0 && x % 5 == 0? 'FizzBuzz' : f(x);
const f = compose([fizzbuzz, buzz, fizz, num])
Array(100).fill().map((_, i) => f(i+1)).map(s => console.log(s));