作为State,可以分解为Product (左函子)和Reader (右可表示)。-- To form a -> (a -> k) -> k
{-# LANGUAGE MultiParamTypeClasses, TypeOperators, InstanceSigsf e = undefined -- If we have a constraint on Isomorphism a e then we can implement th
对于一个Maybe.Just monad,如果我们用返回null的函数映射它,它仍然会返回空值,但是我认为它应该是空的,否则它就失去了防止空值的能力。我是对的,还是还有另一个理由要这样做?(undefined), but I think it should return Nothing()我检查了所有Maybe.map的实现(falktale和Maybe.map),如下所示:
Just.prot
我一直在考虑如何为以下类型实现等效的unfold:这并不明显,因为列表的标准unfold返回一个值和下一个种子对于这种数据类型,这是没有意义的,因为在到达叶节点之前没有“值”。这样,返回新种子或以价值停止才是真正有意义的。我使用的定义是:
data Drive s a = Stop | Unit a | Branch s s deriving Sh
我对Haskell比较陌生,很难理解双函子的效用。我想我从理论上理解了它们:例如,如果我想要映射一个抽象多个具体类型的类型,例如,或者可能,我需要将它们封装在一个双函子中。例如,我在中看到了由Jeremy和BrunoC.D.S.Oliveira编写的代码:
data Fix s a = In {out::s a (Fix s:: Bifunctor s => (b -> s a b) -> b ->