互动网留下大量多余粉丝是常事吗?

2024-04-02

我正在将 lambda 演算项编译到交互网络中,以便使用 Lamping 的抽象算法对其进行评估。为了测试我的实现,我使用了这个教堂编号除法函数:

div = (λ a b c d . (b (λ e . (e d)) (a (b (λ e f g . (e (λ h . (f h g)))) (λ e . e) (λ e f . (f (c e)))) (b (λ e f . e) (λ e . e) (λ e . e)))))

4 除以 4(即(λ k . (div k k)) (λ f x . (f (f (f (f x)))))),我得到这个网:

(抱歉渲染效果很糟糕。λ是一个 lambda,R是根,D是一个粉丝,e是橡皮擦。)

回读这个术语,我得到了教堂编号 1,正如预期的那样。但这张网非常膨胀:它有很多粉丝和橡皮擦,但没有明显的用途。除更大的数字更糟糕。这是div 32 32:

这再次读回为one,但在这里我们可以看到冗余风扇节点的尾巴更长。我的问题是:这是减少该特定术语时交互需求的预期行为,还是我的实现中可能存在的错误?如果这不是一个错误,有什么办法可以解决吗?


是的,这是常见的(但有一些技术可以减少它的存在)

从交互网络实现的一些细节中抽象出来, 以及您对抽象算法的合理性的假设div, 对我来说一切都很好。

  • 尽管有,但无法对您显示的输出应用进一步的交互chi https://stackoverflow.com/users/3234959/chi的声明,因为没有一对D-e可以通过其主端口进行交互。

  • 后一种归约规则(IN框架不允许)可以提高效率,并且在某些特定情况下也是合理的。 基本上,所涉及的粉丝不得有任何“双胞胎”,即不得存在任何“双胞胎”D'在网中最终毁灭D-D'可以发生。 欲了解更多详情,请查看函数式编程语言的优化实现 http://www.worldcat.org/title/optimal-implementation-of-functional-programming-languages/oclc/38067735, 章节安全节点 http://lex104.cs.unibo.it/pub/asperti/safe.ps(可在线获取!),或查看原始论文:

    阿斯佩尔蒂、安德里亚和朱利叶斯·克罗博切克。 “安全算子:括号永远关闭,优化最优 λ 微积分实现。”工程、通信和计算中的应用代数8.6(1997):437-468。

  • 最后,回读过程必须不是作为缩减过程的某种外部成本,而是作为计算复制和擦除的递延成本。 正如您所注意到的,这样的成本很少可以忽略不计,因此如果您想在现实场景中测试效率,请始终总结共享减少和回读减少。

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

互动网留下大量多余粉丝是常事吗? 的相关文章

  • 如何计算函数被调用的次数,FP方式

    我目前正在通过SICP http mitpress mit edu sicp 与哈斯克尔 练习 1 15 询问一个函数被调用了多少次 这个想法可能是您应该使用替换方法 但我想知道如何在代码中执行此操作 在命令式语言中 我们可以保留一个全局变
  • 使用 LambdaMetafactory 访问 Java Bean 方法

    我的问题与以下密切相关显式使用 LambdaMetafactory https stackoverflow com questions 26775676 explicit use of lambdametafactory在该线程中 提供了一
  • 在类型级别未定义

    通常 当我使用 Haskell 代码时 我会使用类型注释将内容存根并undefined foo String gt Int foo undefined 是否有类型级别的 未定义 我可以以类似的方式使用 理想情况下 与某种注释结合使用 typ
  • 连续传递风格的中间值和返回值

    我来自 OOP 非功能性背景 因此我无法完全可视化有关以下方面的几个在线示例连续传递 https en wikipedia org wiki Continuation passing style 另外 像Scheme这样的函数式语言不必指定
  • Haskell Stack 包安装错误

    user stack install dictionaries Error While constructing the build plan the following exceptions were encountered In the
  • 了解函数类型

    我在尝试理解 Haskell 如何确定函数类型时感到有点困惑 这是一个例子 boolFcn x y x 3 y 4 当我检查上述函数的类型时 它给出了结果 Num a1 Num a Eq a1 Eq a gt a gt a1 gt Bool
  • 如何使用 lambda 表达式查询嵌套列表

    在我的存储库实现中 我可以使用 lambda 表达式运行以下查询 public IList
  • 为什么 Vector[Option[Int]] 上的 flatMap 其映射器函数结果不是 Vector[Option[Int]] 有效?

    例如 Vector Some 1 Some 2 Some 3 None flatMap n gt n 产生一个Vector 1 2 3 而不是给出错误 正如我在其他语言中看到的那样 flatMap当你有一个产生嵌套的映射器函数时使用 所以我
  • enumFromTo 如何工作?

    我无法将号码添加到Char 以下内容将无法编译 a 1 但是 a z 成功创建一个字符串 其中每个字符值都会递增 有没有一个特殊的函数可以增加Char 我知道我能做到chr ord c 1 如何 a z 或底层enumFromTo函数增加结
  • Scala 插入列表中的特定位置

    这是我确实解决的问题 但是作为一个完全命令式的 Scala 菜鸟 我觉得我发现了一些完全不优雅的东西 任何改进的想法表示赞赏 val l1 4 1 2 3 4 Nil original list val insert List 88 99
  • 我可以在程序内更改堆栈大小限制吗?

    我可以通过传递配置 GHC 编译的 Haskell 程序的最大堆栈大小 RTS Kn到它 在哪里n是某个数字 有没有办法在程序内更改此设置 我想对各种函数的堆栈消耗进行基准测试 因此尝试在各种限制下运行它 捕获StackOverflow例外
  • 无法让 wxHaskell 在 Mac 上从 ghci 工作

    我正在尝试跑步一个例子 http www haskell org haskellwiki WxHaskell Quick start Hello world in wxHaskell using EnableGUI function htt
  • 使用 Parsec 解析数据并省略注释

    我正在尝试编写一个 Haksell Parsec 解析器 它将文件中的输入数据解析为 LogLine 数据类型 如下所示 Final parser that holds the indvidual parsers final Parser
  • 如何简洁地写一个 || b 其中 a 和 b 是可选值?

    我对任何语言的答案都很满意 但我最终想要 Java 的答案 Java 8 没问题 不限于 Java 8 我尝试修复标签 如果我有两个Optional
  • Haskell - 让函数返回空字符

    我正在尝试创建一个函数来删除字符串中的每个第 n 个元素 dropEvery String gt Int gt String dropEvery str n map char indx gt if indx mod n 0 then cha
  • 追踪 Haskell 中的错误

    我如何获得有关 Haskell 错误发生位置的更多信息 例如 昨天我正在开发一个 Haskell 程序 该程序解析输入文件 转换数据 然后打印出报告信息 有一次 我跑了 main 然后回来了 Prelude read parse error
  • 委托 System.Action 不接受 1 个参数

    那个行动 readonly Action execute public RelayCommand Action execute this execute null public RelayCommand Action execute Fun
  • 使用 rhino 模拟进行 lambda 单元测试失败

    如果我有这个测试 Expect Call session Single
  • 我必须实现 Applicative 和 Functor 来实现 Monad

    我正在尝试实现一个 Monad 实例 作为一个更简单的示例 假设如下 data Maybee a Notheeng Juust a instance Monad Maybee where return x Juust x Notheeng
  • LISP - 破坏性和非破坏性构造

    正确的定义是什么破坏性的 and 非破坏性的在 LISP 或一般情况下 中构造 我试图寻找真正的含义 但我只发现了这些术语的很多用法 而没有真正解释它们 据我了解 通过破坏性的函数是指一个函数 它改变构造 或变量 的含义 所以当我将一个列表

随机推荐

  • 为什么我的复选框没有映射到 MVC 模型成员?

    我正在尝试实现什么这个答案表明 https stackoverflow com a 10649724 57428但没有将显示名称存储在我的模型代码中 所以我相信这是一个单独的问题 我有 MVC 视图 和一个模型 public class M
  • dask 数据帧的 iloc 相当于什么?

    我遇到一种情况 我需要按位置索引 dask 数据帧 我看到没有 iloc方法可用 还有其他选择吗 或者我是否需要使用基于标签的索引 例如 我想 import dask dataframe as dd import numpy as np i
  • 如何检索 QTableView 的选定行?

    我正在使用QTableView具有该模型的类 class PaletteTableModel QtCore QAbstractTableModel def init self colors headers parent None QtCor
  • 数据未通过 wp_localize_script 正确传递

    我正在尝试将 PHP 数据传递给 JS 脚本 我正在使用 wp localize script 函数 wp register script googlechart https www gstatic com charts loader js
  • 如何从 iframe 读取父页面的页面标题?

    我有一个页面调用另一个页面 在另一台服务器上 我希望该页面从父页面读取标题 这可能吗 或者这是否存在一些安全问题 您无法像这样跨服务器进行通信
  • 如何在金属中使用texture2d_array数组?

    我一直在尝试使用texture2d array来应用金属中的实时滤镜 但我没有得到正确的结果 我像这样创建纹理数组 Code Class MetalTextureArray class MetalTextureArray private s
  • 在 iOS 中使用 WKWebView 请求桌面站点

    我到处搜索 但找不到一种方法来请求网站的桌面版本而不依赖网站本身 他们自己的 桌面版本 按钮 有没有办法做到这一点 我认为如果我可以让它在 UIWebView 中工作 那么在 WKWebView 上也可以以相同的方式完成 如果你只关注iOS
  • 将旧日志从 filebeat 重新发送到logstash

    在此先感谢您的帮助 我想重新加载一些日志来自定义其他字段 我注意到 filebeat 配置中的注册表文件会跟踪已选择的文件 但是 如果我删除该文件中的内容 我将无法恢复旧日志 我还尝试更改注册表文件中源的时间戳 但没有成功 将旧日志从 fi
  • 散景图像绘图的较小范围填充

    我正在使用 bokeh 1 0 4 我想使用 bokeh 生成图像图match aspect True 这是用于说明的示例代码 from bokeh models ranges import DataRange1d from bokeh p
  • Tomcat 热部署不工作

    我在 Tomcat 6 服务器上热部署新的 WAR 时遇到问题 当我添加新的 WAR 时 我可以看到 Tomcat 正在尝试部署它 但是 我认为问题在于取消部署旧的 war 展开的 war 文件夹的内容全部被删除 除了 WEB INF 文件
  • Azure数据工厂自动重新触发失败的管道

    我想使用 If Condition Activity 动态内容 自动重新触发失败的管道 过程 管道 1 在计划时间使用触发器 1 运行 有效 如果管道 1 失败 计划触发器 2 将运行管道 2 有效 管道 2 应包含 if 条件来检查管道
  • 从函数提前返回是否比 if 语句更优雅?

    我自己和一位同事对于以下哪一个更优雅存在争议 我不会说谁是谁 所以这是公正的 哪个更优雅 public function set hitZone target DisplayObject void if hitZone target hit
  • 自定义 jQuery 子菜单定位

    我正在尝试创建一个至少有两层子菜单的水平菜单 所有子菜单都是垂直的 Submenu1 将位于其父菜单的正下方 所有后续子菜单级别 2 应位于其父菜单的右侧 我刚刚开始学习如何使用 jQuery 菜单 他们似乎没有对此进行自定义 我不知道如何
  • 计算机如何进行浮点运算?

    我看过很长的文章解释如何存储浮点数以及如何完成这些数字的算术运算 但请简要解释一下为什么当我写的时候 cout lt lt 1 0 3 0 lt
  • 从头开始创建,还是从头开始构建?

    我正在考虑建立一个可视化编程语言 http en wikipedia org wiki Visual programming language 类似于Scratch http scratch mit edu 供儿童 又称可怜的打字员 在对微
  • Go中如何生成固定长度的随机数?

    在 Go 中生成固定长度随机数的最快 最简单的方法是什么 假设要生成8位长数字 问题是rand Intn 100000000 是结果可能远小于 8 位数字 并且用前导零填充它对我来说看起来不是一个好的答案 也就是说 我更关心随机性的质量 因
  • 将 Visual Studio 2008 指向第三方 DLL 的源代码进行调试

    我有一个 VS 2008 C 项目 它使用第三方库 开放场景图 当我开始调试项目时 每次调用此外部库中的函数时 调试器都会跳过它 因为 显然 调试器没有可在其中查找代码的 cpp 文件 它只会跳转到链接到我的项目的头文件 因为这些文件存在并
  • 如何将 Semantic-UI 导入 Angular 项目

    我正在开发一个基于 Semantic UI 框架 这是 Semantic UI 的一个分支 的 Angular 项目 我已经安装了 npm install save fomantic ui 然后我在中添加了以下几行angular json
  • Crashlytics Android NDK:崩溃报告中缺少所有符号

    我们的原生 Crashlytics 崩溃报告最近缺少所有符号信息 我曾希望最新的 Crashlytics NDK 能够解决该问题 但事实并非如此 我看到那里有一个类似的查询 但在这种情况下 我没有使用 Firebase 只是使用 Crash
  • 互动网留下大量多余粉丝是常事吗?

    我正在将 lambda 演算项编译到交互网络中 以便使用 Lamping 的抽象算法对其进行评估 为了测试我的实现 我使用了这个教堂编号除法函数 div a b c d b e e d a b e f g e h f h g e e e f