function map(f) {
 return this.reduce((result, value) =>  result.concat([ f(value) ]), [])
}
..
var map = (list, f) =>
  list.reduce((result, value) => result.concat([ f(value) ]), [])

Not sure I got your motivation, but would this help?

   function fn(f) { return f(this) } // provide 'this' as explicit arg

   let map = it => f =>
     it.list.reduce((result, value) => result.concat([ f(value) ]), [])

   let obj = { map: fn(map), list: [1,2,3] }; // wrap map as method

   obj.map(x => x+1);
   map( {list:[1,2,3]} )(x => x+1);

Claus

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to