re: Functors from first principle - explained with JS VIEW POST

FULL DISCUSSION
 

Why did you write your Maybe.map implementation that way? Wouldn't it make more sense to use the function keyword and the Maybe prototype so that you don't have to leave that note about this?

Something like this:

Maybe.prototype.map = function map(fun) {
  if (this.status === 'nothing') {
    return;
  }

  return fun(this.value);
}

And as an additional note, your (and my rewritten) definition of maybe doesn't satisfy the laws of a functor (maybe.map(noop) !== noop(maybe))

 

You are absolutely right (:
I tried to focus on explaining the functors concept, rather than implementation in any language.
JS was chosen as it has easy syntax readable by many.
I didn't want to go into things such as prototype etc'.

But your comment is most welcome, in case it will confuse other people, I hope they will be able to get their answer here (:

code of conduct - report abuse