- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
λ演算中的Eta抽象意味着跟随。
A function
f
can be written as\x -> f x
实际用例将不胜感激。
最佳答案
eta 减少/膨胀只是定律的结果,即给定
f = g
它必须是,对于任何 x
f x = g x
反之亦然。
因此给出:
f x = (\y -> f y) x
我们得到,通过 beta 减少右手边
f x = f x
这一定是真的。因此我们可以得出结论
f = \y -> f y
关于lambda-calculus - lambda 演算中的 Eta 抽象用于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40617754/
(图1) 简单类型 lambda 演算的一部分(图 1),它在 Haskell 中实现,如下所示。 evaluate expression = do case expression
在 Tom Stuart 的《Understanding Computation》一书中,有一章专门介绍通过 Procs/Lambdas 重建 FizzBuzz。他首先讨论了如何通过过程定义数字,
在 lambda 演算中 (λ x. λ y. λ s. λ z. x s (y s z)) 用于添加两个 Church 数字,我们如何解释这一点,是否有用于函数式编程的 lambda 演算的任何好的
好的,所以我正在尝试实现 basics of lambda calculus .就到这里了。 我的号码: def zero[Z](s: Z => Z)(z: Z): Z = z def one[Z](
我一直在尝试在 C# 上实现原始 lambda 演算,但在实现它时遇到了一些麻烦,因为最后,我总是被要求提供对象。 例如,我想要一些可以让我定义一些基本逻辑组合子的东西,例如 I = Lambda x
我在 Haskell 编程中的冒险并不都是史诗般的。我正在实现简单的 Lambda 演算,我很高兴完成了语法、评估以及替换,希望它们是正确的。剩下的就是红色框中定义的打字(如下图所示),我正在寻找指导
如何扩展简单类型的 lambda 演算以拥有支持类似 monad 类型的类型系统?基本上,我目前对简单类型的 lambda 演算有了很好的理解,并且我想了解将 monad 添加到该基础的“最低要求”。
在 lambda 演算中,如果一个项具有范式,则正常的降阶策略将始终产生它。 我只是想知道如何严格证明上述命题? 最佳答案 您提到的结果是所谓的标准化定理的推论,指出对于任何归约序列 M->N,在相同
在 OCaml 中,“fun”似乎是我的绑定(bind)运算符。 OCaml 有内置替换吗?如果有,它是如何实现的?它是使用 de Bruijn 索引实现的吗? 只是想知道如何在 OCaml 中实现无
在 Haskell 中实现按值调用 lambda 演算时,我是否应该强制对对象语言中函数的参数求值(即按值调用 lambda 演算)来绕过调用 -元语言(即 Haskell)的按需求值顺序? 具体来说
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
为什么纯无类型 lambda 演算经常被描述为无法使用? 有了合适的函数库,它会不会与任何其他函数式语言大致相同? 最佳答案 速度不是大问题。例如,您可以决定使用教堂数字但优化实现,以便像往常一样表示
我正在将一些我在 python 中制作原型(prototype)的代码移植到闪存中,而 actionscript 并没有我预期的那么糟糕(我听说 v3 比 v2 好很多!)我还有一些东西这样做似乎过于
有人告诉我这个词 (z (λy.z x) (λy.y z)) 已经是正常形式了——但我不明白为什么。不能在这种状态下进行另一个 beta 缩减,并将术语 (λy.z x) 中所有出现的 y 替换为 (
Haskell 和 Lambda 演算中的 Python 代码是什么? def f1(): x = 77 def f2(): print x f2 f1 我在 lambd
我想用不同的编程语言实现 bool 值和 NOT 运算符的 lambda 演算构造。 它们是: TRUE = lx.ly. x FALSE = lx.ly. y NOT = lx. x FALSE T
使用 JavaScript。让我们定义以下内容: M = f => f(f) // Mocking Bird I = a => a // Identity 假设现在我们写这个表达式 M( f =>
我一直在玩 javascript(节点)中的 lambda 演算。 我创建了一些 Church 数字,并且一直在尝试创建一个计算斐波那契数列的递归函数,但它绝对行不通! 我曾尝试将函数包装在 Y 组合
我必须为 > 、 , != 编者注:我认为这就是 OP 试图提出的问题: 我正在尝试使用 Church 编码在无类型 lambda 演算中实现以下操作: 大于(GT 或 >)。 小于(LT 或 、
可以解释 Haskell 中的 lambda 演算: data Expr = Var String | Lam String Expr | App Expr Expr data Value a = V
我是一名优秀的程序员,十分优秀!