Lambda 演算中布尔值的查询

2023-11-25

这是 AND 运算符的 lambda 演算表示形式:

lambda(m).lambda(n).lambda (a).lambda (b). m(n a b) b

谁能帮助我理解这种表示形式?


要理解如何在 lambda 演算中表示布尔值,考虑一下 IF 表达式“if a then b else c”会有所帮助。这是一个表达式,如果为真,则选择第一个分支 b,如果为假,则选择第二个分支 c。 Lambda 表达式可以非常轻松地做到这一点:

lambda(x).lambda(y).x

会给你第一个参数,并且

lambda(x).lambda(y).y

给你第二个。因此,如果 a 是这些表达式之一,那么

a b c

给出任一b or c,这正是我们希望 IF 做的事情。所以定义

 true = lambda(x).lambda(y).x
false = lambda(x).lambda(y).y

and a b c会表现得像if a then b else c.

审视你的表情(n a b),这意味着if n then a else b. Then m (n a b) b means

if m then (if n then a else b) else b

该表达式的计算结果为a如果两者都m and n are true, 并b否则。自从a是你的函数的第一个参数并且b是第二个,并且true已被定义为一个给出两个参数中第一个参数的函数,那么如果m and n都是true,整个表达式也是如此。否则就是false。这只是定义and!

这一切都是由 Alonzo Church 发明的,他发明了 lambda 演算。

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

Lambda 演算中布尔值的查询 的相关文章

  • 有没有好的 Clojure 基准测试?

    Edit Clojure 基准测试已达到基准游戏 http benchmarksgame alioth debian org u64q clojure html 我已经制作了这个问题社区维基并邀请其他人保持更新 有人知道 Clojure 性
  • 对列表中的相邻元素进行分组

    假设我想编写一个函数来执行此操作 输入 1 1 3 3 4 2 2 5 6 6 输出 1 1 3 3 4 2 2 5 6 6 它将相同的相邻元素分组 这个方法的名称应该是什么 此操作有标准名称吗 In 1 1 3 3 4 2 2 5 6 6
  • 相当于 Java 中 C++ 的 std::bind 吗?

    有没有一种方法可以像 C 中的 std bind 一样将 Java 中的参数绑定到函数指针 Java 中类似的东西会是什么 void PrintStringInt const char s int n std cout lt lt s lt
  • 从函数返回随机值是副作用吗?

    我当时正在编写一些 F 代码 并且正在编写一个从一组字符串中返回随机字符串的函数 假设我有这样的事情 open System let a a b c d let rstring arr string let r new Random arr
  • 使用 elm 高阶函数处理键盘事件

    我正在尝试创建一个高阶函数来创建仅捕获特定关键代码的函数 该代码的灵感来自 EvanonEnter来自他的 todomvc 实现的函数 仅捕获 Enter 函数 onKeyCode Int gt Msg gt Attribute Msg o
  • IntSummaryStatistics的summaryStatistics方法

    为什么空 IntStream 上的 summaryStatistics 方法返回整数的最大和最小值作为流中存在的最大和最小 int 值 IntStream intStream IntStream of IntSummaryStatistic
  • 在 Python 中,部分函数应用(柯里化)与显式函数定义

    在 Python 中 以下方式是否被认为是更好的风格 根据更一般的 可能是内部使用的功能显式定义有用的功能 或者 使用偏函数应用来显式描述函数柯里化 我将通过一个人为的例子来解释我的问题 假设编写一个函数 sort by scoring 它
  • 需要澄清令人困惑的 Http4s 消息类型 `Response[F]` / `Request[F]`

    我很难理解为什么Request and Response参数化为F 类似的东西是猫效应数据类型资源 从文档中 https typelevel org cats effect docs std resource https typelevel
  • lambda 演算中的按值调用

    我正在努力克服类型和编程语言 http www cis upenn edu bcpierce tapl 皮尔斯对于按值缩减策略调用 给出了术语的示例id id z id z 内部氧化还原id z id z 减少为 z id z首先 给予id
  • 函数式编程是否避免了状态?

    根据维基百科 http en wikipedia org wiki Functional programming 函数式编程是一种编程范式 它将计算视为数学函数的评估避免状态和可变数据 强调我的 这是真的吗 我个人的理解是 它使状态更加明确
  • 如何在 F# 中执行 Seq.takeWhile + 一项

    我想编写一个使用谓词过滤序列的函数 但结果还应该包括谓词返回 false 的第一个项目 如果 F 中有一个break关键字 逻辑将是这样的 let myFilter predicate s seq for item in s do yiel
  • Scala 解析器组合器的运算符优先级

    我正在研究需要考虑运算符优先级的解析逻辑 我的需求并不太复杂 首先 我需要乘法和除法比加法和减法具有更高的优先级 例如 1 2 3 应视为 1 2 3 这是一个简单的例子 但你明白了 我需要将更多自定义标记添加到优先级逻辑中 我可以根据此处
  • 为什么在 Scala 中函数类型需要以单独的参数组传递到函数中

    我是 scala 新手 我用两种方式编写了相同的代码 但我对两种方式有点困惑 在第二种方式中 f 的参数类型是自动派生的 但在 type1 中 scala 编译器无法执行相同的操作 我只是想了解这背后的想法是什么 Type1 给出编译错误
  • 是否有适用于 Haskell 或 Scala 等函数式语言的 LL 解析器生成器?

    我注意到明显缺乏用函数式语言创建解析器的 LL 解析器 我一直在寻找但没有成功的理想发现是为 ANTLR 风格的 LL 语法生成 Haskell 解析器 语法的模小数重新格式化 并且令我惊讶的是 每个最后一个解析器生成器都具有函数我发现的语
  • 如何计算函数被调用的次数,FP方式

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

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我尝试创建一个函数two argum
  • Coq:Type(n) 中的 Prop 与 Set

    我想考虑以下三个 相关的 Coq 定义 Inductive nat1 Prop z1 nat1 s1 nat1 gt nat1 Inductive nat2 Set z2 nat2 s2 nat2 gt nat2 Inductive nat
  • Scala 插入列表中的特定位置

    这是我确实解决的问题 但是作为一个完全命令式的 Scala 菜鸟 我觉得我发现了一些完全不优雅的东西 任何改进的想法表示赞赏 val l1 4 1 2 3 4 Nil original list val insert List 88 99
  • 在函数式编程中画UML类图有什么意义吗?

    我被要求在一个学校项目中展示UML我使用的图表 如果我这样做的话 实现该项目 但我正在做的项目是用 C 语言编写的 并且已经进行了功能编程 因此 我想证明 在不使用面向对象语言的情况下使用类图是没有意义的 但我担心这不是真的 并且无法证实这
  • Python 的“with”是一元吗?

    像我之前的许多鲁莽的先驱者一样 我正在努力穿越理解单子这片无路可走的荒原 我仍然在蹒跚学步 但我不禁注意到 Python 的某种类似 monad 的品质with陈述 考虑这个片段 with open input filename r as

随机推荐

  • 使用 extjs 在网格中显示图像

    我是 extjs 的新手 我想显示每个网格元素的图标图像 你能帮助我吗 我从 xml 文件获取图像路径 我的代码如下 这里我显示图像路径 我必须通过显示图像来替换它 Ext onReady function var store new Ex
  • C# XmlReader 的空格问题

    我有一个简单的xml
  • 检查元素和查看源代码显示两个不同的东西

    我正在使用 Google Chrome 中的 Inspect Element 来找出控制此模板网站幻灯片下方幻灯片控制器按钮大小的因素 http themefuse com demo html Medica index slider 2 h
  • 为什么 CLng 会产生不同的结果?

    这是直接来自我的 VBE MS Excel 2007 VBA 的小精华 clng 150 0 85 127 x 150 0 85 clng x 128 有人能解释这种行为吗 恕我直言 第一个表达式应该产生 128 0 5 四舍五入到最接近的
  • (new Array(x)).map 奇怪的[重复]

    这个问题在这里已经有答案了 我发现奇怪的行为 在 Chrome 上测试 1 2 map function console log arguments 1 0 Array 2 2 1 Array 2 undefined undefined 没
  • 如何使用 jQuery 检查选​​择框中是否未选择任何选项?

    我试图查看是否在选择框中选择了某个选项 如果没有 我希望它提醒一个字符串 我指的是这个链接 检查是否使用 jQuery 选择了选项 如果没有选择默认值 但它不起作用 这是我的代码
  • Sails.js 获取多对多关联计数

    我有一个模型 用户 与另一个模型 手机 有关联 这个关联是多对多的 以下调用内置于 Sails 中 允许我获取特定用户的所有电话记录 GET user userId phones 我希望能够在该调用上实现分页 但无法弄清楚如何获取结果总数
  • 创建书签来填写表格

    我想创建一个书签 用文本填充第一个 第二个 第五个和第六个文本框 这样我就可以更轻松地使用网站上的工具 因为我经常使用它并且它不记得我的输入 这些是前面带有此文字的 Vertrek gemeente Straat Aankomst geme
  • 如何检查 GPS 传感器是否存在?

    我正在编写一个方法 如果存在并启用了 GPS 传感器 该方法将返回 true 但如果不存在或已关闭 则返回 false 事实证明这很难 因为 hasSystemFeature FEATURE LOCATION GPS on PackageM
  • Java 过滤器无法设置响应标头

    我正在尝试创建一个 Java 过滤器 它检测自定义 HTTP 请求标头 并插入响应标头 以便文件自动下载 为此最重要的响应标头是 Content Type Attachment 响应标头 我创建了一个插入自定义标头的 HTTP 请求对象 f
  • 如何在 Perl 中读取系统时间和日期?

    我需要读取系统时钟 时间和日期 并在 Perl 中以人类可读的格式显示它 目前 我正在使用以下方法 我发现here usr local bin perl months qw Jan Feb Mar Apr May Jun Jul Aug S
  • 如何链接到 GitHub 上的特定行号

    我知道我可以链接到 GitHub 存储库上文件的特定行号 我确定我以前见过这个 我怎样才能做到这一点 不要只链接到行号 请务必使用规范网址也 否则 当该文件更新时 您将得到一个指向错误行的 URL 如何建立指向正确线路的永久链接 单击您想要
  • 单击时更改 Twitter Bootstrap 工具提示内容

    我在锚元素上有一个工具提示 单击时会发送 AJAX 请求 该元素有一个工具提示 来自 Twitter Bootstrap 我希望 AJAX 请求成功返回时更改工具提示内容 启动后如何操作工具提示 今天在阅读源代码时发现了这个 所以 tool
  • WPF Datepicker禁用用户输入

    我有一个日期选择器 但它允许我输入任何文本 我想禁止用户输入文本 应允许用户从日历中选择日期
  • PowerMock 无法与 JAXB Unmarshal 一起使用

    我正在创建一个测试用例 其中输入 xml 并将其解组以继续处理 我正在尝试使用 PowerMock 但我不断收到 javax xml bind UnmarshalException unexpected element uri http w
  • 获取函数参数的地址合法吗?

    该代码片段在 ANSI C 中定义良好吗 在我的系统 Linux x86 64 上 它似乎运行得很好并打印地址 但情况总是如此吗 例如 该参数可能通过寄存器传递 并且获取该寄存器的地址似乎不正确 include
  • TinyMCE - Chrome 浏览器 - 无法像在 FF 中那样在 Chrome 中粘贴图像

    我正在使用TinyMCE 所见即所得编辑器控制 同时可以复制和粘贴图像片段FireFox 不可能在Chrome 我尝试过升级到TinyMCE版本 4 0 16 之前有版本 3 5 8 但仍然无法使其工作 有人能够做到这一点吗 在 FireF
  • 如何使用 Perl 发送带有 cookie 的 HTTP 请求?

    我是 Perl 新手 我想编写一个 Perl 程序 创建一个 HTTP 请求 将其发送到任何 URL 例如http www google com 在请求中包含 cookie 将 http 响应代码记录在文件中 我已经尝试过这个 usr bi
  • in_array() 始终返回 TRUE [重复]

    这个问题在这里已经有答案了 arrValue array first second ret in array 0 arrValue var dump ret var dump arrValue 上面的例子给出了以下结果 bool true
  • Lambda 演算中布尔值的查询

    这是 AND 运算符的 lambda 演算表示形式 lambda m lambda n lambda a lambda b m n a b b 谁能帮助我理解这种表示形式 要理解如何在 lambda 演算中表示布尔值 考虑一下 IF 表达式