lambda-calculus 相关问题

λ-calculus是函数定义,函数应用和递归的形式系统,它构成了函数式编程的数学基础。

定义栈数据结构及其在lambda演算中的主要操作

我正在尝试使用定点组合器在 lambda 演算中定义堆栈数据结构。我试图定义两个操作,插入和删除元素,所以,推和弹出,但唯一...

回答 2 投票 0

在 Haskell 中实现教会数字乘法不起作用

我目前正在学习 Church 编码,并且正在尝试实现 mul(乘)函数。 这是正确的实现 mul cn cm = x -> cn (cm f) x 这(我的实现)...

回答 1 投票 0

在 Lambda 演算中证明不正确

假 = λxy.y 真 = λxy.x 我们可以将 NOT 运算定义如下: NOT = λx.x 假 真 我可以通过这样做来证明 NOT FALSE: `非假 = λx.x (λxy.y) (λxy.x) (λxy.y) - x = x - M = x (λxy....

回答 1 投票 0

使用 y 组合器从布尔列表中去除“FALSE”前缀?难住了

给定一个列表,例如(f: f FALSE (g: g FALSE (h: h TRUE FALSE))),编写一个运算符,删除所有前导 FALSE 并仅返回以 TRUE 开头的尾部。对于此示例,操作员应该

回答 2 投票 0

评估参数不足的 SKI 组合器

我的任务是展示这一点 S(KK)I = K 现在由于 S 需要三个参数,所以我一开始就陷入困境,不知道如何解决这个问题。我看到两个论点,即(KK)和我,但有......

回答 3 投票 0

这个Y'怎么会和这个Y组合器本身一样呢?

我在wiki上看到了这个: Y' = SSK(S(K(SS(S(SSK))))K) 我明白为什么它对应于这个 lambda 表达式 Y' = (λab.aba) (λab.a(bab)) 但我不知道这怎么能与 X = λa.(λx.xx)(λx.a(...

回答 1 投票 0

如何仅对“λy.(λx.λy.yx)yz”应用一次 beta 约简?

如何对 λy.(λx.λy.yx)yz 应用一次 beta 约简? 正确答案是 λy.(λw.wy)z。 仅在必要时才允许重命名,从答案中可以明显看出使用了重命名。

回答 1 投票 0

Lambda 演算 - 评估自定义重写规则以增量

我正在使用这套 lambda 演算重写规则: 在评估“INC 0”时,我执行了以下步骤: 随后,我对“INC 1”进行了这样的评估: 这些是评价吗...

回答 1 投票 0

教堂数字:如何在 lambda 演算中编码零?

我正在学习 lambda 演算,但我似乎无法理解数字 0 的编码。 “接受一个函数和第二个值并在

回答 4 投票 0

是否可以使用 PHOAS 将术语评估为范式,然后将其字符串化?

从这篇 Haskell Cafe 帖子中,并借用 jyp 的一些代码示例,我们可以在 Haskell 中构造一个简单的 PHOAS 求值器,如下所示: {-# 语言 GADT #-} {-# 语言排名N类型 #-} 导入数据.Char...

回答 1 投票 0

有效的 Lambda 表达式

我有两个关于 lambda 表达式有效性的问题。 首先,变量本身是否是有效的 lambda 表达式(例如:λx) 其次,以这两个 lambda 表达式(λx.fxya 和 λz.

回答 1 投票 0

以下表达式在 Lambda 微积分中的计算结果如何?

nxt = λp。对(加上(TIMES 2(fst p))(snd p))(fst p) f = λn。 fst (n nxt (对 1 0)) f5 评估什么? 如果我替换 (pair 1 0) -> p,会得到 nxt = pair (plus (TIMES 2 (1)) 0) (1) ...

回答 0 投票 0

lambda 演算中的编码对

我对 lambda 演算如何编码 pair 数据结构背后的逻辑感到困惑。 在 lambda 演算中,PAIR 被编码为 一对:=λx.λy.λf。 fxy . 为什么我不能把它编码为 一对:=λ...

回答 0 投票 0

Lambda 演算 - 给出条件

给出术语 t1, t2, . . . , t5 使得以下推导在多态 lambda 演算中有意义,其中 Γ = f : X → Y → Y, g : ∀Z.(Z → Z) → Z, x : X 和 X 和 Y 是类型。 这是...

回答 0 投票 0

如何读入lambda表达式lambda x.yz

lambda x.yz 应该读作 (lambda x.y) z 减少到 z 或者 λx。 (yz) 这似乎是不可约的?

回答 0 投票 0

异或可以用SKI组合子表示吗?

我对 SKI-Combinators 有疑问。 异或(异或)只能用 S 和 K 组合子来表示吗? 我有 真 = 取消 假=(交换取消) 在哪里 取消 x y = K x y = x 交换:f...

回答 2 投票 0

Haskell Lambda help - 从lambda-term输入中拆分术语。

我试图创建一个函数,在这个函数中,给定一个lambda术语将返回输入的lambda术语中的所有独立术语。我的术语数据定义如下: type Var = String data Term = ...

回答 1 投票 2

纯哈斯克尔Lambda微积分中列表的向量性

我试图用Haskell在纯lambda微积分中实现各种事情。一切都很好 type List a = forall b. (a -> b -> b) -> b empty :: List a empty = const id cons :...。

回答 1 投票 1

Haskell中用于高阶函数的Lambda表达式

[遵循此书,Haskell中的所有内容都是λ微积分:f(x)= x + 1的函数可以在Haskell中写为f = \ x-> x + 1和,在λ表达式中写为λx.x+ 1。更高的λ表达式是什么...

回答 1 投票 0

Beta约简Lambda演算示例

((λw。w)(λu。λv。u)(λu。λv。v)(λu。λv。u)有人可以逐步介绍此示例的Beta减少吗?我真的很困惑

回答 1 投票 -1

© www.soinside.com 2019 - 2024. All rights reserved.