gpt4 book ai didi

functional-programming - 查询 Lambda 演算中的 bool 值

转载 作者:行者123 更新时间:2023-12-04 02:51:19 26 4
gpt4 key购买 nike

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

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

任何人都可以帮助我理解这种表示吗?

最佳答案

要理解如何在 lambda 演算中表示 bool 值,考虑一个 IF 表达式会有所帮助,“if a then b else c”。这是一个表达式,它选择第一个分支 b,如果它是真的,第二个,c,如果它是假的。 Lambda 表达式可以很容易地做到这一点:

lambda(x).lambda(y).x

会给你它的第一个参数,和
lambda(x).lambda(y).y

给你第二个。所以如果 a 是这些表达式之一,那么
a b c

给出 bc ,这正是我们希望 IF 执行的操作。所以定义
 true = lambda(x).lambda(y).x
false = lambda(x).lambda(y).y

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

(n a b) 看你的表情,这意味着 if n then a else b .
然后 m (n a b) b方法
if m then (if n then a else b) else b

此表达式的计算结果为 a如果两者都 mntrue ,并致 b除此以外。自 a是函数的第一个参数, b是第二个, true已被定义为给出其两个参数中的第一个的函数,则如果 mn都是 true ,整个表达式也是如此。否则是 false .而这只是 and 的定义!

所有这些都是由 Alonzo Church 发明的,他发明了 lambda 演算。

关于functional-programming - 查询 Lambda 演算中的 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2398503/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com