配列と非常によく似た機能を持つジェネレータが、 、 、 などの非常に基本的なリスト操作をサポートする必要があることは、私にはまったく自然なことのように思えmap()
ます。何か不足していますか?filter()
reduce()
のコードを書きましたが、map
十分に単純に見えますが、すべてのジェネレーターにすべての関数を埋め込む方がはるかに優れています。
let fancyGen = g => {
let rv = function*() {
for (let x of g)
yield x;
}
rv.map = function*(p) {
for (let x of g)
yield p(x);
}
return rv;
}
私はジェネレーターが初めてなので、コードに関するコメントは大歓迎です。特に、「ID ジェネレーター」を記述する最良の方法はありますか?