Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Lambda 使用beta约化找到一个正规形式_Lambda_Lambda Calculus - Fatal编程技术网

Lambda 使用beta约化找到一个正规形式

Lambda 使用beta约化找到一个正规形式,lambda,lambda-calculus,Lambda,Lambda Calculus,给出以下表达式: ((λx.λx.xx) (λx.xzx)) (λy.yy) 我想用beta约化法找到它的标准形式 我的计算: ((λx.λx.xx) (λx.xzx)) (λy.yy) -> ((λx.xzx)(λx.xzx)) (λy.yy) -> ((λx.xzx)z(λx.xzx)) (λy.yy) -> (zzz (λx.xzx)) (λy.yy) -> ? 但我怎样才能从这里继续下去: (zzz (λx.xzx)) (λy.yy) -> ? 感谢使

给出以下表达式:

((λx.λx.xx) (λx.xzx)) (λy.yy)
我想用beta约化法找到它的标准形式

我的计算:

((λx.λx.xx) (λx.xzx)) (λy.yy) ->
((λx.xzx)(λx.xzx)) (λy.yy) -> ((λx.xzx)z(λx.xzx)) (λy.yy) ->
(zzz (λx.xzx)) (λy.yy) -> ?
但我怎样才能从这里继续下去:

(zzz (λx.xzx)) (λy.yy) -> ?

感谢使用
\
表示
λ

((\x.\x.xx) (\x.xzx)) (\y.yy) =
= ((*\x*.\x.xx) *(\x.xzx)*) (\y.yy) =
= (\x.( (\x.xzx) (\x.xzx) )) (\y.yy) =
= (\x.( (*\x*.xzx) *(\x.xzx)* )) (\y.yy) =
= (\x.( (\x.xzx) z (\x.xzx) )) (\y.yy) =
= (\x.( ( (\x.xzx) z) (\x.xzx) )) (\y.yy) =
= (\x.( ( (*\x*.xzx) *z*) (\x.xzx) )) (\y.yy) =
= (\x.( ( (zzz) (\x.xzx) ) (\y.yy) =
= (*\x*.( ( (zzz) *(\x.xzx)* ) (\y.yy) =
= (zzz) (\x.( (\y.yy) z (\y.yy) )) =
= (zzz) (\x.( ((\y.yy) z) (\y.yy) )) =
= (zzz) (\x.( ((*\y*.yy) *z*) (\y.yy) )) =
= (zzz) (\x.( (zz) (\y.yy) )) =
= (zzz) (\x.(zz)(\y.yy))
这里没有进一步的应用程序——至少,只要您没有
z
的定义

另外,请注意,在最终展开中有一个
x
定义,您可能在计算过程中抑制了该定义

所有变量(λxλx.xx)在表达式中具有共同点:

((*λx*.*λx*.xx) (λx.xzx)) (λy.yy)

是他们的名字。尽管如此,它们是不同的变量。

使用
\
表示
λ

((\x.\x.xx) (\x.xzx)) (\y.yy) =
= ((*\x*.\x.xx) *(\x.xzx)*) (\y.yy) =
= (\x.( (\x.xzx) (\x.xzx) )) (\y.yy) =
= (\x.( (*\x*.xzx) *(\x.xzx)* )) (\y.yy) =
= (\x.( (\x.xzx) z (\x.xzx) )) (\y.yy) =
= (\x.( ( (\x.xzx) z) (\x.xzx) )) (\y.yy) =
= (\x.( ( (*\x*.xzx) *z*) (\x.xzx) )) (\y.yy) =
= (\x.( ( (zzz) (\x.xzx) ) (\y.yy) =
= (*\x*.( ( (zzz) *(\x.xzx)* ) (\y.yy) =
= (zzz) (\x.( (\y.yy) z (\y.yy) )) =
= (zzz) (\x.( ((\y.yy) z) (\y.yy) )) =
= (zzz) (\x.( ((*\y*.yy) *z*) (\y.yy) )) =
= (zzz) (\x.( (zz) (\y.yy) )) =
= (zzz) (\x.(zz)(\y.yy))
这里没有进一步的应用程序——至少,只要您没有
z
的定义

另外,请注意,在最终展开中有一个
x
定义,您可能在计算过程中抑制了该定义

所有变量(λxλx.xx)在表达式中具有共同点:

((*λx*.*λx*.xx) (λx.xzx)) (λy.yy)

是他们的名字。尽管如此,它们是不同的变量。

可能更适合Aha!给定表达式没有标准形式!我已经更改了变量的名称并运行到无限循环中!谢谢,啊哈!给定表达式没有标准形式!我已经更改了变量的名称并运行到无限循环中!谢谢