我目前正在研究monad和applicative仿函數之間的關係。monads的「ap」實現有多隨意?
我看到兩個實施AP:
ap m1 m2 = do { f <- m1 ; x <- m2 ; return (f x) }
和
ap m1 m2 = do { x <- m2 ; f <- m1 ; return (f x) }
第二個是不同的,但是,那會是對<*>
一個很好的執行?
我失去了我的pure (.) <*> u <*> v <*> w = u <*> (v <*> w)
我想方設法把「什麼單子的部分是適用函子」的直覺證明...
一個有趣的示例應用程序:向'Traversable'容器實現'mapAccumR'。 – dfeuer
我知道'list'是什麼,但是'Nel'代表什麼? – Bergi
一個'Nellist'是一個非空列表,加上L來澄清發音。 – pigworker