如何解决λx有什么区别 xλyy和λxxλyy
Lambda表达式尽可能向右扩展。例如 λx xλy。 y与λx相同。 x(λy。y),与(λx。x)(λy。y)不同。
我看不到区别,在两种情况下似乎都将(λy。y)应用于(λx。x)减少为(λy。y),不是这种情况吗?
第一种情况减少了多少?
解决方法
我看不到区别,在两种情况下似乎都将(λy。y)应用于(λx。x)减少为(λy。y),不是这种情况吗?
我认为您的意思是写“(λx。x)应用于(λy。y)”,而不是相反。 (我们说一个函数被“应用”到其参数,而不是相反。)
但要回答您的问题-不。公式λ x 。 x λ y 。 y 的意思是λ x 。 x (λ y 。 y ),即λ x 。( x ( λ y 。 y ));也就是说,它是一个带有参数 x 的函数(这是一个函数),将该参数应用于身份函数λ y 。 y ,并返回结果。
我看到您了解Python,所以用Python术语来说:
-
让
的函数identity
为定义为def identity(y): return y
然后是λ y 。 y 表示
identity
。 -
λ x 。 x (λ y 。 y )表示
lambda x: x(identity)
例如(λ x 。 x (λ y 。 y ))(λ t .3)是
(lambda x: x(identity))(lambda t: 3)
其值为
3
。 -
(λ x 。 x )(λ y 。 y )表示
identity(identity)
,正如您所说的,减少到
identity
;因此((λ x 。 x )(λ y 。 y ))(λ t .3)是(identity(identity))(lambda t: 3)
其值为
(lambda t: 3)
。 -
λ x 。 x λ y 。 y 表示λ x 。 x (λ y 。 y ),不(λ x 。 x )(λ y 。 y )。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。