jcu*_*bic 32 monads jquery functional-programming
我在某处读到jQuery是monad,这个答案表明underscore.js库中的链函数不是monad(而是comonad).并且回答这个类似的,表明它是幺半群.
那么,jQuery是monad吗?
Don*_*art 31
大多数API不符合monad法律.从统计上讲,它jQuery是一个很大的API,它不太可能是"意外"的monadic.因此,我非常怀疑jQueryAPI作为一个整体可以满足monad定律(即"jQuery是monad").
这并不意味着给定的(非常受限制的)子集可能不满足它们,但API作为一个整体可能包含"不安全"操作,这些操作在使用时会违反规则,从而破坏了抽象.
由于似乎没有人提供证据证明API全部或部分符合法律,我建议我们应该假设它没有,直到提供证据.
必须显示:
return(将值提升到jQuery monad中)?bind,将计算粘合在一起?然后,鉴于jQuery API的其余部分,可能会违反哪些法律?例如,我可以bind通过调用其他API函数来打破它吗?
参考文献:
jbe*_*man 11
我认为你指的是jQuery的隐式循环行为.在这方面,jQuery类似于在列表monad中工作,其中链接相当于bind,并且包含元素$()类似于return(我猜).
那么在jquery中你可以将一个新的列表元素附加到一堆div列表中:
$('div').children().append("<li>New list element</li>");
Run Code Online (Sandbox Code Playgroud)
...在哈斯克尔你可能有:
appendToEachList divs = divs >>= children >>= append "<li>New list element</li>"
Run Code Online (Sandbox Code Playgroud)
以上是来自内存,应该被认为是伪代码废话.
无论如何,我认为说"jQuery是Monad"会有一段时间.
| 归档时间: |
|
| 查看次数: |
4417 次 |
| 最近记录: |