Haskell 中的 Comonad 类型类是什么?

2023-12-24

Haskell 中的 Comonad 类型类是什么?正如 Comonad 中的comonad 包中的 Control.Comonad http://hackage.haskell.org/packages/archive/comonad/1.1.1.1/doc/html/Control-Comonad.html(也欢迎提供 Comonad 类型类的任何其他包的解释)。我隐约听说过 Comonad,但我真正了解的是它提供了extract :: w a -> a,有点类似于 Monad 的return :: a -> m a.

如果在“真实”代码中注意到 Comonad 在“现实生活”中的使用,则会获得奖励积分。


这些链接可能会有所帮助:

  1. 评估元胞自动机是共性的 http://blog.sigfpe.com/2006/12/evaluating-cellular-automata-is.html。特别是,“每当你看到大型数据结构由大量小型但相似的计算拼凑而成时,我们很有可能正在处理一个共同的问题”。
  2. 序列、流和段 http://conal.net/blog/posts/sequences-streams-and-segments
  3. 日常生活中的常见现象 http://fmapfixreturn.wordpress.com/2008/07/09/comonads-in-everyday-life/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Haskell 中的 Comonad 类型类是什么? 的相关文章

  • Haskell 中的参数数量和无点 [重复]

    这个问题在这里已经有答案了 对于多重模式匹配 不同数量的参数是不可能的 即使是无点的 foo True b b 2 foo id 例如 不起作用 但 foo True 2 foo id 做 有时我们只能在函数的一部分使用 point fre
  • 在帖子上生成最近帖子列表时,如何避免依赖循环?

    所以这有效 create archive html do route idRoute compile do posts lt myRecentFirst gitTimes lt lt loadAll posts let archiveCtx
  • 测试列表是否已排序

    在 haskell 中找到最小列表确实很容易 foldl1 min 9 5 7 3 7 4 6 10 给我3 我更换了min with lt 测试列表是否已排序 foldl1 lt 9 5 7 3 7 4 6 10 我收到此错误消息 No
  • 绑定变量时 Haskell 中的无限循环

    下面的 Haskell 代码不会终止 有人可以解释一下为什么吗 谢谢 f let x 10 in let x x x in x 我认为解释器首先绑定 x 10 然后将 x x 计算为 100 并绑定 x 100 环境变为 x 100 那么整
  • Haskell:处理死锁的自引用列表

    GHC 允许永久阻止以下内容是否有任何有用的理由 list 1 tail list 看起来列表迭代器 生成器有点复杂 我们应该能够做一些更有用的事情 Return error Infinitely blocking list Return
  • 应用交换律

    带有效果的应用程序编程 http staff city ac uk ross papers Applicative html麦克布莱德和帕特森的论文提出了互换法 u lt gt pure x pure f gt f x lt gt u 为了
  • 计算/获取分层数据的“级别”

    好吧 我真的不知道这是否是正确的标题 但我不知道如何称呼它 我的问题是关于我的作业 我现在已经工作了几个小时 主题是 函数式数据结构 我有点陷入困境 我不知道如何继续 所以我需要编写一个具有以下签名的函数 data Heap e t Hea
  • 不同 hs 文件中的函数分离时堆栈空间溢出

    我有一个巨大的 haskell 文件 它编译和运行没有任何问题 我想将一些函数和类型定义放在通用 hs 文件中的单独模块中 然后将其导入我的主模块中 虽然主程序编译时没有任何错误 它还编译导入的模块 但当我尝试运行它时 出现堆栈空间溢出 I
  • 谁能解释一下 GHC 对 IO 的定义吗?

    标题非常自我描述 但有一个部分引起了我的注意 newtype IO a IO State RealWorld gt State RealWorld a 剥离newtype 我们得到 State RealWorld gt State Real
  • “反向”使用 Maybe Monad

    假设我有很多功能 f a gt Maybe a g a gt Maybe a h a gt Maybe a 我想按以下方式组合它们 如果 f 返回 Nothing 则计算 g 如果 g 返回 Nothing 则计算 h 如果其中任何一个计算
  • 是否有一个基于对象身份的、线程安全的记忆库?

    我知道记忆化似乎是堆栈溢出的 haskell 标签上的一个长期话题 但我think以前没有人问过这个问题 我知道 Haskell 有几个不同的 现成 记忆库 memo combinators 和 memotrie 包 利用涉及惰性无限数据结
  • 将 Either 列表转换为其中包含列表的 Either 列表

    我是 Haskell 的初学者 我正在编写一些使用 Haskell 的代码Either https hackage haskell org package base 4 9 0 0 docs Data Either html用于错误处理 E
  • GHC 是否使用存在类型的动态调度?

    下面的代码是否使用了 C 或 Java 中所理解的动态调度 据我了解 在最后一行 编译器不可能在编译时知道要调用哪个 实现 但代码会编译并产生正确的结果 有人可以解释一下 这背后有什么样的实现 例如 vptr 吗 LANGUAGE Exis
  • 我应该使用镜头中的什么来按索引构建只读吸气剂?

    我有一个内部细节被隐藏的类型 我想提供某种镜头 可以在特定索引处读取所述类型的元素 但是not修改它们 一个Ixed我的类型的实例似乎没有做我想要的事情 因为它明确允许修改 尽管不允许插入或删除 如果我想允许只读索引 我不确定我使用什么 如
  • 在 Haskell 命令行应用程序中提示输入密码

    以下 Haskell 程序提示用户在终端中输入密码 如果输入正确则继续 main do putStrLn Password password lt getLine case hash password member database of
  • 解析 PHOAS 表达式

    我想我理解 PHOAS 参数化高阶抽象语法 我明白了如何漂亮地打印一个表达式 参见http www reddit com r haskell comments 1mo59h phoas for free by edward kmett cc
  • 嵌套在其他 monad 中的 IO 操作未执行

    我有一个 foobar IO ParseResult String String ParseResult 是一个在这里定义的 monad https hackage haskell org package haskell src exts
  • Haskell 和 Idris 之间的区别:类型宇宙中运行时/编译时的反映

    因此 在 Idris 中 编写以下内容是完全有效的 item b Bool gt if b then Nat else List Nat item True 42 item False 1 2 3 cf https www youtube
  • 使用 Haskell 将函数注入到 Java .class 文件中

    我使用 Haskell 编写了一个 Java 字节码解析器 它工作得很好 然而下一步让我完全难住了 我的 Haskell 程序需要修改 class 文件 以便在执行时 Java 程序打印 输入 此处的方法名称 在执行方法之前 并且 退出 此
  • 为什么解析器组合器“seq”用“bind”和“return”定义?

    我正在读这个article http eprints nottingham ac uk 237 1 monparsing pdf关于解析器组合器并且不理解以下内容 他们说使用seq 见下文 导致解析器将嵌套元组作为结果 操作起来很混乱 se

随机推荐

  • 如何获取Appium服务器日志

    有没有办法在测试脚本中获取 Appium 服务器日志 driver manage logs get appium server 或将 appium 服务器日志重定向到控制台 我的主要目的是单独获取仪器日志而不是所有日志 info debug
  • 有什么办法可以限制 Twitter 时间轴小部件中的推文吗?

    我正在使用 Twitter 的时间轴小部件 如下所示 并且希望将推文数量限制为 5 默认情况下为 20 该网站是为使用屏幕阅读器的视障人士而嵌入的 屏幕阅读器被困在小部件内 用户被迫通过 Tab 浏览所有 20 条推文才能退出 Twitte
  • 如何克隆 MemoryStream 对象?

    我有一个MemoryStream经过的对象Stream类型参数 Stream是 C 中的抽象类 我想克隆它以创建另一个单独的MemoryStream对象与原始对象的当前位置并创建一个新的XMLReader出来 所以我将能够阅读其内容 这就是
  • 取消引用 void 指针时的reinterpret_cast 行为

    在与某人争论他在评论中提出的建议时这个答案 https stackoverflow com a 21177728 241631 我遇到了一些 gcc4 8 和 VS2013 拒绝编译的代码 但 clang 很高兴地接受它并显示正确的结果 i
  • 如何强制 GHC 内联 FFI 调用?

    我制作了小型 C 模块来提高性能 但 GHC 不内联外部函数 并且调用成本消除了加速 例如 test h int inc int x test c include test h int inc int x return x 1 Test h
  • Haskell 树木地图

    我的树定义为 data Tree a Leaf a Node Tree a Tree a deriving Show 我还声明了一个测试树 myTree Node Node Leaf 1 Leaf 2 Leaf 3 我想要做的是创建一个函数
  • 接连显示 UIMenuController 的问题

    我正在使用 UIMenuController 的新自定义功能将 复制 以外的内容添加到菜单中 以便剪切并粘贴到 Web 视图中 我所做的就是获取对共享 UIMenuController 的引用 将 UIMenuItems 的 NSArray
  • 确定从 spacy 中提取的文本是否是一个完整的句子

    我们正在研究从 PDF 中提取的句子 问题是它包括标题 页脚 目录等 有没有办法确定我们将文档传递给spacy时得到的句子是否是一个完整的句子 有没有办法过滤句子的某些部分 例如标题 一个完整的句子至少包含一个主语 一个谓语 一个宾语 并以
  • 如何使用 Dagger 2 在 Activity 或 Fragment 范围内交换测试双精度?

    编辑 小心 我已经删除了这个问题中提到的旧存储库 请参阅我自己对问题的回答以获取可能的解决方案 并随时改进它 我指的是我的帖子here https stackoverflow com questions 40405839 dagger 2
  • 如何将文件夹上传到 Google Colab?

    我想运行一个使用目录中定义的许多头文件的笔记本 所以基本上我想将整个目录上传到 Google Colab 以便我可以运行笔记本 但我无法找到任何此类选项 只能上传文件而不是完整的文件夹 那么有人可以告诉我如何将整个目录上传到 google
  • 如何阻止 Maven 重命名已安装的 jar

    我正在使用 mvn install install 命令将我们的内部文件安装到 Maven 存储库 以这种方式安装的所有 Jars 都会自动添加版本名称作为后缀 由于我们有许多带有 Jars 名称的批处理脚本 这对我们来说非常不方便 如何关
  • Backbone 和 TypeScript,一段不幸的婚姻:构建类型安全的“get”?

    我正在尝试将 TypeScript 与 Backbone js 一起使用 它 有效 但是 Backbone 的 get 和 set 失去了大部分类型安全性 我正在尝试编写一个可以恢复类型安全的辅助方法 像这样的事情 我会将其放入我的模型中
  • Alsa全双工通信

    我想使用alsa实现全双工通信 我首先编写了捕获和回放程序 并使用 UDP 通信将数据从捕获的进程传输到回放进程 当我运行两个进程时工作正常 其中一个正在捕获 另一个正在播放 将其视为从 A 到 B 的半双工 当我尝试实现另一个半双工 从
  • TortoiseSVN:移动文件不保留历史记录

    我试图将文件移动到 TortoiseSVN 存储库内的另一个文件夹 但修订历史记录未保留 我尝试使用 Repo 浏览器移动文件 右键单击拖动文件并选择 将项目移动到此处 以及工作文件夹中的文件 右键单击拖动 选择 SVN 将版本化文件移动到
  • 我可以在 .net 3.5 中调用 .net 2.0 dll 吗?

    我正在迁移到 net 3 5 我想知道我是否可以从 3 5 应用程序调用旧的 net 2 0 dll 的方法 一些外部 API 位于 net 2 0 dll 中 所以我需要那些 请告诉我 谢谢 是的 你可以这么做
  • LaTeX 矩阵在 Github Markdown 上无法正确渲染

    我试图表示一个基本向量 以下代码适用于 Visual Studio Code 我正在使用以下行 begin bmatrix X Y end bmatrix 所有空格均已删除 它应该看起来像这样 https i stack imgur com
  • RabbitMQ 在 CreateModel() 方法上关闭了连接

    我正在尝试运行教程中的 Producer 示例 但 RabbitMQ 关闭了连接 但出现异常 抛出异常 RabbitMQ Client dll 中的 RabbitMQ Client Exceptions OperationInterrupt
  • 直方图 - 以并行方式进行

    Id M1 trx 1 M1 11 35 2 M1 3 4 3 M1 10 45 2 M1 3 95 3 M1 20 95 2 M2 25 55 1 M2 9 95 2 M2 11 95 1 M2 9 65 1 M2 14 54 通过上面的
  • 在正则表达式的字符之间插入空格

    我对正则表达式非常陌生 我试图在字符串中查找存在由字母组成的单词的实例w or e后面跟2位数字 例如e77 w10 etc 这是我目前拥有的正则表达式 我认为它发现了 如果我错了 请纠正我 e w d 0 2 d 1 2 如何在字母后面添
  • Haskell 中的 Comonad 类型类是什么?

    Haskell 中的 Comonad 类型类是什么 正如 Comonad 中的comonad 包中的 Control Comonad http hackage haskell org packages archive comonad 1 1