Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 13 years ago.
查看 Wikipedia 上 lambda 演算的正式定义。抽象和应用程序总是有一组括号。这意味着 S 和 K 的更正确定义是:
S = (\x.\y.\z.x z (y z))
将
K = (\x.\y.x)
这些替换为 (SKK) 给出正确的结果。
(SKK)
Check out the formal definition of lambda calculus on Wikipedia. An abstraction and an application always have a set of enclosing parentheses.This means more correct definitions of S and K are:
and
Substituting these in (S K K) gives the correct result.
(S K K)
在(SKK)中,一些括号是隐式的。这种形式是 ((SK) K) 的缩写,因为函数应用始终是二进制的,并且被认为是左关联的。
((SK) K)
In (S K K), some parentheses are implicit. This form is an abbreviation for ((S K) K) since function application is always binary and is considered left-associative.
((S K) K)
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(2)
查看 Wikipedia 上 lambda 演算的正式定义。抽象和应用程序总是有一组括号。
这意味着 S 和 K 的更正确定义是:
将
这些替换为
(SKK)
给出正确的结果。Check out the formal definition of lambda calculus on Wikipedia. An abstraction and an application always have a set of enclosing parentheses.
This means more correct definitions of S and K are:
and
Substituting these in
(S K K)
gives the correct result.在
(SKK)
中,一些括号是隐式的。这种形式是((SK) K)
的缩写,因为函数应用始终是二进制的,并且被认为是左关联的。In
(S K K)
, some parentheses are implicit. This form is an abbreviation for((S K) K)
since function application is always binary and is considered left-associative.