我读某处jQuery是一个monad和
this answer显示在underscore.js库中的链函数不是一个monad(但comonad)。和
answer to this这是相似的,表明是monoid。
那么,是jQuery是monad吗?
解决方法
大多数API不符合Monad法律。 jQuery是一个大型的API,所以在统计上,它不太可能是“意外”的monadic。因此,我非常怀疑jQuery API作为一个整体可以满足monad的法律(即“jQuery是一个monad”)。
这并不意味着给定的(非常受限制的)子集可能不满足它们,但是作为整体的API可能包含在使用时违反法律的“不安全”操作,破坏抽象。
由于没有人提供证据证明该计划的整体或部分符合法律,我建议我们应该假设它不,直到提供证据。
必须显示:
>什么jQuery操作对应return(提取一个值到jQuery monad)?
>什么jQuery操作对应bind,用于胶合计算?
>左,右和关联性法律对这些操作有何看法?
然后,什么法律违反可能给定的jQuery API的其余部分?例如,我可以通过调用其他API函数中断绑定吗?
参考文献: