在APL和Haskell中,monad是指两个完全不同的事物,还是从两个不同的角度来看相同的事物。
我对这两种语言都很陌生,并试图理解更高层次的概念。
发布于 2014-05-06 03:55:18
完全不同的是,在Haskell,单一功能是任何具有两种功能的东西。
bind :: m a -> (a -> m b) -> m b
return :: a -> m a还有一些关于他们如何合作的规则。它实际上是从范畴理论中构建出来的。
在APL中,monad只是描述一个函数(动词)使用多少个参数的术语。在“一元论”中,“一元论”似乎可以作为“一元功能”的同义词,是逻辑和语言学中普遍存在的术语。
发布于 2014-05-06 03:55:24
两件完全不同的事!Monad经常与"Dyad“和"Triad”连用,意思是“一”、“二”、“三”。就APL而言,它表示“一个论点”。
哈斯克尔的单簧管完全不同。他们的词源可能是从“单面”和“操作”中提取出来的,这两者也完全不同。
发布于 2014-05-06 03:53:57
据我所知,它们是不同的东西。如果APL的monad只是一个只有一个论点的动词( 此页会让我相信;我不知道APL),那么它与哈斯克尔的monad有很大的不同,后者来自范畴理论,与函数的性质无关。
https://stackoverflow.com/questions/23485637
复制相似问题