问题标签 [comonad]

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 回答
17889 浏览

haskell - Haskell 中的 Comonad 类型类是什么?

Haskell 中的 Comonad 类型类是什么?与Comonad 包中 Control.Comonad 中的 Comonad 一样(也欢迎解释提供 Comonad 类型类的任何其他包)。我隐约听说过 Comonad,但我真正知道的是它提供了extract :: w a -> a,有点类似于 Monad 的return :: a -> m a

在“真实”代码中注意到“现实生活”中使用 Comonad 的奖励积分。

0 投票
8 回答
16792 浏览

haskell - 如何从一元动作中提取价值

是否有带有签名的内置函数:: (Monad m) => m a -> a

Hoogle 说没有这样的功能。

你能解释一下为什么吗?

0 投票
2 回答
7638 浏览

haskell - 什么是商店comonad?

对 Haskell 中的 Comonad 类型类有所了解后,我听说过 Store comonad。但是看着Control.Comonad.Store.Lazy,我真的不明白。这是什么意思?它是干什么用的?我听说 Store = CoState,State Monad 的对偶。这意味着什么?

0 投票
1 回答
377 浏览

math - 我应该如何在 Haskell 中实现 Cayley 表?

我有兴趣推广一些计算工具以使用Cayley Table,这意味着基于查找表的乘法运算。

我可以创建一个最小的实现,如下所示:

然而,这种方法存在许多问题,首先是通过比较进行运行时类型检查,但包括无法正常工作ByteString的事实。read知道我应该如何正确地做到这一点吗?

我可以想象使用提供乘法并验证其类型一致性的类型类创建一系列 newtypes ,等等,除非在执行 IOCTElement1CTElement2IntCTElement

理想情况下,也可能有一些技巧可以只传递这个ct_cayleytable指针的一个副本,也许使用像 的隐式参数?cayleytable,但这不能很好地处理多个不兼容的 Cayley 表,并且通常令人讨厌。

另外,我已经收集到向量的索引可以被视为一个comonad。是否有任何好的comonad 实例用于vector 或任何可能有助于平滑这种类型检查的东西,即使最终在运行时进行检查?

0 投票
1 回答
2542 浏览

haskell - underscore.js 中的链函数是否创建了一个 monad?

在您找到chain文档中:

调用chain一个包装的对象将导致所有未来的方法调用也返回包装的对象。完成计算后,使用value检索最终值。

那么这个chain函数会创建一个单子吗?

0 投票
3 回答
2747 浏览

scala - Scala 中的 Comonad 示例

什么是 Comonad,如果可以用 Scala 语法描述的话。我找到了 scalaz库实现,但不清楚它在哪里有用。

0 投票
1 回答
240 浏览

haskell - Haskell cabal 反应包错误

在尝试使用 cabal 安装 Reactive 时,我得到了这个:

据此,确实没有comonad依赖。但是,它在PrimReactive.hs中使用 Control.Comonad 。

0 投票
2 回答
1691 浏览

list - 从理论上讲,这是列表的有效comonad 实例吗?

我正在尝试掌握 monads 的概念,在阅读了这篇博文之后,我想我对它们的作用以及它们与 monads 的关系有了一个深刻的理解。但是,我想我会深入研究一下这个主题,然后想想通用列表类型(你知道,[a])的comonad 实例会是什么样子,我发现了一个我不完全知道的是正确的。

因此,鉴于博客文章使用的实例:

我认为 for 的实例声明[a]看起来像这样(for 的语法[a]可能是不可能的或错误的,但你明白了这里的想法):

在这里,我们只是找到所有的subsequences列表,但完全可以使用它powerset或其他东西。表单列表中有几个函数,(a -> [a])对于哪个是正确的有点模棱两可。

这是否意味着[a]无法将其正确实例化为comonad,还是仅由用户决定cojoin实际做什么?

0 投票
3 回答
4352 浏览

haskell - 为 n 维网格类型编写 cojoin 或 cobind

使用类型级自然值的典型定义,我定义了一个 n 维网格。

现在我想让它成为 Comonad 的一个实例,但我无法完全理解它。

在 n 维网格上使用cojoin将产生 n 维网格的 n 维网格。我想提供一个与这个想法相同的实例,( x,y,z)处的联合网格的值应该是聚焦于(x,y,z)的原始网格。为了调整该代码,我们似乎需要进行具体化以执行“fmaps”和“rolls”。您不必那样做,但如果这有帮助,那么您就可以了。nnn

0 投票
1 回答
339 浏览

scala - Scala 共胞;康乃德定律?

因此,鉴于这种共单子编码(见下文),它上面的共单子定律是否正确?出于某种原因,我不认为他们是看着他们的,而且我知道从那里走错只会产生糟糕的道路,所以我会很感激轻推、提示、帮助、回答你有什么。