问题标签 [category-abstractions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1065 浏览

haskell - “介于”类别和箭头之间的类型类有意义吗?

通常你有类似 an Applicativewithoutpure或类似 a Monad, but without的东西return。semigroupoid包用和覆盖了这些情况。现在我处于类似的情况,我无法定义一个有意义的函数,但我认为其他函数会很有意义。ApplyBindArrowarr

我定义了一个包含函数的类型,它是反向函数:

现在我无法实现Arrow,但更弱一些:

我认为我无法实现 , 的等价物&&&,因为它被定义为f &&& g = arr (\b -> (b,b)) >>> f *** g,并且(\b -> (b,b))不可逆。不过,您认为这个较弱的类型类可能有用吗?从理论的角度来看,它甚至有意义吗?

0 投票
2 回答
718 浏览

haskell - Control.Category 有什么用?

如果我发现某个东西是Monoidor Monad,我就会使用各种有趣的功能,比如foldMapsequence甚至mapM。他们让我开心。

如果我发现某物是 a ,我会得到什么Categoryid除了超载和之外,我还有什么好玩的(.)吗?

0 投票
1 回答
190 浏览

haskell - 以这种方式定义构图有什么问题?

我正在阅读一些箭头教程,玩弄返回自己新版本的函数以试图保持某种状态。

新类型的定义如下:

因为我希望能够组成电路,所以我将其设为 Category 的一个实例。组成两个电路时,结果也必须是一个电路。 (Circuit b c) . (Circuit a b)给出一个Circuit a c.

我写了这个:

但它失败了:

我在教程中查找了答案,这个答案引入了一个像这样的中间函数,它编译得很好:

我看不出有什么区别。

0 投票
3 回答
251 浏览

haskell - 如何构造带约束的 Applicative 实例(类似于使用 ContT 构造 Monad 实例)

这个问题涉及Monad从 monad 构造一个适当的实例,但仅在某些约束下 - 例如Set。诀窍是将它包装成ContT,这会将约束推迟到包装/展开其值。

现在我想对Applicatives 做同样的事情。特别是,我有一个Applicative实例,其pure具有类型类约束。有没有类似的技巧如何构造一个有效的Applicative实例?

(是否有“所有应用函子之母”,就像单子一样?)

0 投票
1 回答
323 浏览

haskell - 无论实例如何,在哪里使用 Haskell 类别组合?

我想我几乎弄清楚了 Category 类代表什么。然而,在这个抽象级别上,我想知道在哪里可以找到它的通用用途。

哪些代码 using.idfromControl.Category发现了不同实例的实际用途?

0 投票
1 回答
980 浏览

haskell - 在 Haskell 中定义类别和类别法则

我通过直接将定义和定律翻译成 Haskell 来学习范畴论,这让我很开心。Haskell 当然不是 Coq,但它帮助我获得了对范畴理论的直觉。我的问题是:以下是对 Haskell 类别定义的合理“翻译”吗?

0 投票
1 回答
304 浏览

haskell - 指数类型的推广

(如果有的话) (->)( a -> bas b a ) 的指数解释如何推广到 Hask/Set 以外的类别?例如,对于非确定性函数类别的解释似乎大致Kliesli [] a b2 a * b ( a -> b -> Bool)。

0 投票
2 回答
219 浏览

haskell - 泛化 ($),如 Control.Category 泛化 (.)

我想像泛化($)一样进行Control.Category泛化(.),并且我已经使用本文末尾的代码(也是 ideone)这样做了。

在这段代码中,我创建了一个名为FunctionObject. 此类具有具有($)以下签名的函数:

自然地,我创建(->)了这个类的一个实例,以便$继续使用普通函数。

但这允许您创建特殊函数,例如,知道它们自己的逆函数,如下例所示。

我已经得出结论,有以下三种可能性之一:

  1. 我是第一个想到的。
  2. 其他人已经做到了,而我正在重新发明轮子。
  3. 这是个坏主意。

选项 1 似乎不太可能,我在hayoo上的搜索没有显示选项 2,所以我怀疑选项 3 最有可能,但如果有人能解释为什么会这样,那就太好了。

0 投票
1 回答
796 浏览

haskell - Control.Category,>>>和<<<是什么意思?

我正在关注这个博客,在 haskell 中编写一个简单的 http 服务器,

>>>我不清楚的用法。这个代码片段有什么作用?

在此链接上类似,我看到了<<<

做什么<<<>>>做什么?(黑客文档非常简洁,不能从中得到太多。)

0 投票
2 回答
194 浏览

haskell - (\f -> fmap f id) 是否总是等价于 arr?

的一些实例Category也是 的实例Functor。例如:

这里arr f = fmap f idinstance Arrow State. 这对所有的实例Category都是真的Functor吗?类型签名是:

在我看来,它们应该是等价的。