¿Por qué los generadores no admiten map ()?

Me parece completamente natural que los generadores, que funcionan de manera muy similar a las matrices, deberían soportar las operaciones de lista muy básicas, comomap(), filter()yreduce(). ¿Me estoy perdiendo de algo?

Escribí el código paramap y parece bastante simple, pero sería mucho mejor tener todas las funciones integradas en todos los generadores:

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

Soy nuevo en generadores, por lo que cualquier comentario sobre el código es bienvenido. En particular, ¿es esa la mejor manera de escribir "el generador de identidad"?

Respuestas a la pregunta(1)

Su respuesta a la pregunta