16得票1回答
Monad变换器通常源于自由/忘却配对吗?

在伴随函子确定单子变换器,但是lift在哪里?中,Simon C向我们展示了构造方法... newtype Three u f m a = Three { getThree :: u (m (f a)) } ...这可以通过给定一个instance Adjunction f u =&gt...

16得票1回答
哪些 Haskell 函子等同于 Reader 函子

一些 Haskell 函子 F a 显然是与某些类型 T 的 T -> a 同构的,例如: data Pair a = Pair a a -- isomorphic to Bool -> a data Reader r a = Reader (r ->...

16得票3回答
有没有一种理论将范畴论/抽象代数和计算复杂度结合起来?

类别论和抽象代数处理函数如何与其他函数组合的方式。 复杂性理论处理函数计算难度。 我觉得很奇怪,因为似乎没有人将这些研究领域结合起来,因为它们看起来像是天然的一对。 以前有人做过这件事吗? 作为一个激励性的例子,让我们来看看幺半群。 众所周知,如果操作是幺半群,则可以并行化操作。 例如,在...

16得票1回答
这些类似Free的构造有没有一般化的形式?

我正在玩一些自由式的思路,然后发现了这个:{-# LANGUAGE RankNTypes #-} data Monoid m = Monoid { mempty :: m, mappend :: m -> m -> m } data Generator a m = Generat...

16得票1回答
Haskell/Idris中的开放类型级别证明

在 Idris/Haskell 中,可以通过注释类型并使用 GADT 构造函数(例如 Vect)来证明数据的性质,但这需要将性质硬编码到类型中(例如,Vect 必须是与 List 不同的单独类型)。 是否可能拥有具有开放属性集的类型(例如同时携带长度和运行平均值的列表),例如通过重载构造函数或...

16得票4回答
自由幺半群和幺半群之间的主要区别是什么?

看起来我对Haskell中的Monoid有相当清晰的理解,但上次听说过一个叫做自由幺半群。 什么是自由幺半群,它与幺半群有何关联? 能否在Haskell中提供一个示例?

16得票1回答
Representable在Haskell中的作用是什么?

我希望了解在Haskell中,Representable代表什么意思。 定义: 在Haskell类型的范畴上,可表示的自函子同构于reader monad,并且可以免费继承非常多的属性。 对我来说不够清晰。 我想看一个真实示例,以了解如何使用tabulate和index方法。 所...

16得票1回答
有一个Codensity MonadPlus可以渐进地优化一系列MonadPlus操作吗?

最近有一个关于DList <-> [] 和 Codensity <-> Free 之间关系的问题。 这让我想到是否有类似于 MonadPlus 的东西。然而,Codensity monad 仅提高了单子操作的渐近性能,而不是 mplus。 此外,虽然曾经有过 Con...

16得票1回答
Control.Category,>>>和<<<是什么意思?

我正在遵循这篇博客,使用Haskell编写一个简单的HTTP服务器。 &gt;&gt;&gt;的用法对我来说不太清楚。这段代码片段是做什么用的?handleHttpConnection r c = runKleisli (receiveRequest &gt;&gt;&gt; han...

15得票1回答
函子是针对 (a -> b) -> (f a -> f b) 的,那么针对(Category c) => c a b -> c (f a) (f b) 的是什么?

我希望有一个函数,可以将纯函数映射到容器中或通过它进行应用程序/单调操作。对于纯映射,我们有:fmap :: Functor f =&gt; (a -&gt; b) -&gt; (f a -&gt; f b) 对于单子序列,我们有(来自Data.Taversable)mapM :: (Trav...