问题标签 [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.
haskell - “介于”类别和箭头之间的类型类有意义吗?
通常你有类似 an Applicativewithoutpure或类似 a Monad, but without的东西return。semigroupoid包用和覆盖了这些情况。现在我处于类似的情况,我无法定义一个有意义的函数,但我认为其他函数会很有意义。ApplyBindArrowarr
我定义了一个包含函数的类型,它是反向函数:
现在我无法实现Arrow,但更弱一些:
我认为我无法实现 , 的等价物&&&,因为它被定义为f &&& g = arr (\b -> (b,b)) >>> f *** g,并且(\b -> (b,b))不可逆。不过,您认为这个较弱的类型类可能有用吗?从理论的角度来看,它甚至有意义吗?
haskell - Control.Category 有什么用?
如果我发现某个东西是Monoidor Monad,我就会使用各种有趣的功能,比如foldMap,sequence甚至mapM。他们让我开心。
如果我发现某物是 a ,我会得到什么Category?id除了超载和之外,我还有什么好玩的(.)吗?
haskell - 以这种方式定义构图有什么问题?
我正在阅读一些箭头教程,玩弄返回自己新版本的函数以试图保持某种状态。
新类型的定义如下:
因为我希望能够组成电路,所以我将其设为 Category 的一个实例。组成两个电路时,结果也必须是一个电路。 (Circuit b c) . (Circuit a b)给出一个Circuit a c.
我写了这个:
但它失败了:
我在教程中查找了答案,这个答案引入了一个像这样的中间函数,它编译得很好:
我看不出有什么区别。
haskell - 无论实例如何,在哪里使用 Haskell 类别组合?
我想我几乎弄清楚了 Category 类代表什么。然而,在这个抽象级别上,我想知道在哪里可以找到它的通用用途。
哪些代码 using.或idfromControl.Category发现了不同实例的实际用途?
haskell - 在 Haskell 中定义类别和类别法则
我通过直接将定义和定律翻译成 Haskell 来学习范畴论,这让我很开心。Haskell 当然不是 Coq,但它帮助我获得了对范畴理论的直觉。我的问题是:以下是对 Haskell 类别定义的合理“翻译”吗?
haskell - 指数类型的推广
(如果有的话) (->)( a -> bas b a ) 的指数解释如何推广到 Hask/Set 以外的类别?例如,对于非确定性函数类别的解释似乎大致Kliesli [] a b为2 a * b ( a -> b -> Bool)。
haskell - 泛化 ($),如 Control.Category 泛化 (.)
我想像泛化($)一样进行Control.Category泛化(.),并且我已经使用本文末尾的代码(也是 ideone)这样做了。
在这段代码中,我创建了一个名为FunctionObject. 此类具有具有($)以下签名的函数:
自然地,我创建(->)了这个类的一个实例,以便$继续使用普通函数。
但这允许您创建特殊函数,例如,知道它们自己的逆函数,如下例所示。
我已经得出结论,有以下三种可能性之一:
- 我是第一个想到的。
- 其他人已经做到了,而我正在重新发明轮子。
- 这是个坏主意。
选项 1 似乎不太可能,我在hayoo上的搜索没有显示选项 2,所以我怀疑选项 3 最有可能,但如果有人能解释为什么会这样,那就太好了。
haskell - (\f -> fmap f id) 是否总是等价于 arr?
的一些实例Category也是 的实例Functor。例如:
这里arr f = fmap f id为instance Arrow State. 这对所有的实例Category都是真的Functor吗?类型签名是:
在我看来,它们应该是等价的。