优化自由 Monad

2023-12-29

如果我有一个价值a: Free[Op, A],是否有可能“扁平化”结构a这样两个Op被自由单子束缚在一起的 s 可以折叠成一个吗?

Context:我想在解释之前执行此操作作为优化步骤,因为语义Op是它的操作是幂等的。因此,如果两个“连续”出现,则可以在不影响程序语义的情况下消除第二个。


据我了解,Free Monad 程序无法进行这种内省,因为它代表顺序计算,其中每个步骤都依赖于另一个步骤的结果。

John de Goes 有一篇关于 Free Monad 与 Free Applicative 优缺点的精彩演讲(https://www.youtube.com/watch?v=H28QqxO7Ihc https://www.youtube.com/watch?v=H28QqxO7Ihc)。后者赋予内省的力量。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

优化自由 Monad 的相关文章

  • 计算行的排名

    我想根据一个字段对用户 ID 进行排名 对于相同的字段值 排名应该相同 该数据位于 Hive 表中 e g user value a 5 b 10 c 5 d 6 Rank a 1 c 1 d 3 b 4 我怎样才能做到这一点 可以使用ra
  • 为什么不重新评估 Binding.scala 路由器?

    我正在尝试通过 Binding scala 为个人项目构建通用路由器 我定义了一个PageState trait sealed trait WhistState def text String def hash String def ren
  • Scala 方法和高级类型参数

    我试图在 scala 中定义一个方法 它采用通用类型S lt Seq Double 并返回一个 S FixedLoad FixedLoad 是一个具体类型 但我的实现给了我错误 我不明白为什么 尽管我多次尝试去理解参数类型和高级类型 但我的
  • 如何在 Apache Spark 中基于列的子集实现“ except ”?

    我正在 Spark 中使用两个模式 table1 and table2 scala gt table1 printSchema root user id long nullable true item id long nullable tr
  • 运行 JAR 时“JCE 无法验证提供者 BC”

    在我的 scala 项目中我使用 org bouncycastle bcprov jdk14 1 51 用于密码学 如果它在 Scala IDE 中测试我的项目 它工作得很好 但是一旦我制作了一个 JAR 并尝试通过以下方式运行它java
  • 演员邮箱溢出。斯卡拉

    我目前正在与 scala 的两位演员合作 一 producer 产生一些数据并将其发送到parcer 生产者发送一个HashMap String HashMap Object List Int 通过消息 以及this标记发件人 parcer
  • f# 运行总计序列

    好吧 这看起来应该很容易 但我就是不明白 如果我有一个数字序列 如何生成由运行总计组成的新序列 例如 对于序列 1 2 3 4 我想将其映射到 1 3 6 10 以适当的功能方式 Use List scan https msdn micro
  • Scala SBT 和 JNI 库

    我正在编写一个简单的应用程序Scala通过以下方式使用 leveldb 数据库leveldbjni图书馆 我的build sbt文件看起来像这样 name Whatever version 1 0 scalaVersion 2 10 2 l
  • 如何使用 Scala 在 Spark 中漂亮地打印 JSON 数据帧?

    我有一个数据帧 我想将其作为有效的 json 写入 json 文件 我当前的代码如下所示 val df DataFrame myFun df toJSON saveAsTextFile myFile json 输出的格式为 如何将文件内容组
  • 加特林负载测试期间编译错误

    我正在尝试编写一个模拟 并且希望能够运行该模拟 我在尝试 mvn gatling execute 时遇到错误 我的 pom 有以下依赖项
  • Ruby 反向柯里化:这可能吗?

    关于 Ruby 1 9 x 中的柯里化 我一直在某些地方使用它 并且可以像基本上支持 proc 参数的默认参数一样进行翻译 p proc x y z x y z p curry 1 gt returns a lambda p curry 1
  • 选项包装值是一个好的模式吗?

    我最近写了以下 Scala 代码 val f File pretend this file came from somewhere val foo toFoo io Source fromFile f mkString 我真的不喜欢这种方式
  • Scala Function.tupled 和 Function.untupled 等效于变量 arity,或者使用元组调用变量 arity 函数

    昨晚我试图围绕接受和调用通用函数做一些事情 即类型在调用站点上已知 但可能因调用站点而异 因此定义应该是跨参数通用的 例如 假设我有一个函数f A B C gt Z 其实这样的还有很多fs 我事先不知道 所以我无法确定类型或数量A B C
  • Scala REPL 中的递归重载语义 - JVM 语言

    使用 Scala 的命令行 REPL def foo x Int Unit def foo x String Unit println foo 2 gives error type mismatch found Int 2 required
  • 什么是欣德利米尔纳?

    我遇到过这个词欣德利 米尔纳 我不确定是否理解它的意思 我已阅读以下帖子 史蒂夫 叶格 动态语言的反击 http steve yegge blogspot com 2008 05 dynamic languages strike back
  • Haskell scala 互操作性

    我是 Scala 初学者 来自面向对象范式 在了解 Scala 的函数式编程部分时 我被引导到 Haskell 纯函数式编程语言 探索 SO 问题答案 我发现 Java Haskell 具有互操作性 我很想知道 Scala Haskell
  • IntelliJ IDEA 13:新的 Scala SBT 项目尚未生成 src 目录结构

    我按照 Jetbrains 网站上的入门视频设置 IntelliJ IDEA 13 1 Community Edition 以与 Scala 配合使用 Scala 插件 v0 36 431 已安装 当我使用向导创建一个新的 Scala SB
  • 通用 scala 函数,其输入是变量数量的函数

    我想定义一个函数f需要另一个函数g 我们需要g采取采取n双打 对于某些固定n 并返回一个 Double 函数调用f g 应该返回具体值n 例如 f Math max 2因为 Math sin 具有类型 Double Double gt Do
  • 在 Akka 中配置嵌套 Router

    我有一些嵌套的路由器 应创建它FromConfig 我想要的是这样的 test akka actor deployment worker router round robin nr of instances 5 slave router b
  • 为什么 Scala 中的隐式类必须驻留在另一个特征/类/对象中?

    基于scala文档 http docs scala lang org overviews core implicit classes html http docs scala lang org overviews core implicit

随机推荐

  • Caliburn Micro WPF 窗口管理

    我想使用 caliburn micro 启动一个 WPF 应用程序 这样我就可以尽可能地使用 TDD 我之前在 WP7 中使用过 caliburn micro 但 WPF 似乎是另一艘船 并且文档不完整与 WP7 一样 我已经用我的 Boo
  • 是否可以在 Scala 解释器中定义伴随类/模块?

    在 Scala 解释器中进行测试通常很方便 然而 我遇到的一个问题是 我必须重构使用隐式转换的代码 因为定义一个与现有类同名的对象does not使其成为 REPL 中的配套模块 因此 当我翻译回 真实源代码 时 我不能确信我的代码仍然可以
  • 临时和表达行为

    这是明确定义的行为吗 const char p std string Hello std string World c str std cout lt lt p 我不知道 原因 不 这是未定义的行为 两个都std string临时对象和返回
  • Javascript 数组查找效率:关联与存储关联?

    我一直在阅读 他们说关联数组不会给你提供与数组相同的效率 关联数组可以在 O N 时间内查找内容 而数组可以在 O 1 时间内查找内容 这是我的问题 在快速查找值并且不占用太多内存方面 哪一个更有效 联想 var myVars new Ar
  • 在 C# 中创建自定义 ODBC / OLE 驱动程序

    有谁知道如何最好用 C 创建 ODBC 或 OLE 驱动程序 我想要做的是创建一个可以在 Excel 和 Access 中使用的自定义数据源 或者想出另一种方法来做到这一点吗 预先感谢您的回复 C 中有一个 OLE DB 驱动程序的简化版本
  • 根据行数调整 jqGrid 的大小? - 网格高度?

    我遇到了与帖子中详细说明的相同问题根据行数调整 jqGrid 的大小 https stackoverflow com questions 1972806 一些建议 看起来完全合乎逻辑 不起作用 因为当我尝试使用以下命令获取网格的高度时var
  • Thymeleaf 注册页面 - 执行处理器“org.thymeleaf.spring4.processor.attr.SpringInputGeneralFieldAttrProcessor”期间出错

    我正在为一个网站制作一个注册页面 我知道为了创建新用户 需要一个 id 所以我们有这个字段
  • mongodb 性能不佳

    我目前正在使用 mongodb 并且我发现查询性能非常差 可能需要几秒钟 场景如下 我有一个结构文件 id xxx userId yyy a 1 b 2 counter 1 在测试中 userId value could be 1 200
  • Python 多处理池突然停止

    我正在尝试根据我的要求执行并行处理 并且代码似乎可以按预期并行处理 4k 5k 元素 但是 一旦要处理的元素开始增加 代码就会处理一些列表 然后在没有抛出任何错误的情况下 程序突然停止运行 我检查过 程序没有挂起 RAM 可用 我有 16
  • 通过在单元格中键入内容将项目动态添加到 DataGridView ComboBox 列

    我有一个DataGridView有一个ComboBox列 我必须在其下拉列表显示时更新每个组合框的可能值 我还必须使ComboBoxes 能够具有自定义类型的值 当输入新值时 应将其添加到可能值列表中 问题是我得到了无穷多个DataErro
  • 如何在 vi 编辑器中向左移动一个单词

    I use the shortcut w to move the cursor one word right Is there a shortcut to move a word left Use b to move back one wo
  • 如何将语音识别添加到Unity项目中? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我目前正在使用 Vuforia 开发一个增强现实项目 该项目使用语音识别来控制 Unity 中的对象
  • Android adb 无线调试与 USB 配件

    我有 adb 无线连接用于在 eclipse 中调试应用程序 但我在使用 USB 电缆连接到附件的应用程序时遇到问题 该应用程序设计为在插入附件时启动 因此我建立 ADB 连接 然后在 Eclipse 上运行调试 代码加载等 现在 当我将附
  • 如何在 docker python API 中流式传输日志?

    我正在使用 docker python API 从 Dockerfile 构建图像 import os import sys import os path import docker client docker from env try h
  • 安装/捆绑 gem unf_ext -v '0.0.6' 时出错

    我正在尝试捆绑安装unf ext v 0 0 6 但我不断收到此错误 Gem Ext BuildError ERROR Failed to build gem native extension checking for main in ls
  • NodeJS Google Vision 无法检测当前环境中的项目 ID

    Ubuntu环境下 NodeJS Google Vision抱怨 Error 无法在当前环境中检测到项目 ID 即使我已经通过了 json 凭证 export GOOGLE APPLICATION CREDENTIALS var crede
  • pgAdmin 执行脚本的快捷方式

    谁知道 pgAdmin 查询工具中执行脚本的快捷方式 即执行整个查询并执行当前脚本 Select the relevant portion and hit the F5 key in the SQL editor of pgAdmin OR
  • vxworks 中的 C++ 11

    我是VxWorks的新手 我正在VxWorks平台上使用C 开发一个软件 我想知道VxWorks编译器是否支持C 11标准 我问这个问题的原因是因为没有可用的shrink to fit std vector 函数 该函数是在c 11 标准中
  • cvc-complex-type.3.2.2:属性 xsi:schemaLocation 不允许出现在 Java DOM 中的

    我正在尝试使用 DOM 验证器在 Java 中使用 XSD 来验证我的 XML 尽管我手动知道该文档确实有效 但 DOM 验证器却对我喊道 cvc complex type 3 2 2 Attribute
  • 优化自由 Monad

    如果我有一个价值a Free Op A 是否有可能 扁平化 结构a这样两个Op被自由单子束缚在一起的 s 可以折叠成一个吗 Context 我想在解释之前执行此操作作为优化步骤 因为语义Op是它的操作是幂等的 因此 如果两个 连续 出现 则