[x |-> v] t
を「t 内の x のすべての自由な出現を v で置換する」と表示しましょう。
私の教科書の置換規則は
[x |-> v] x=v
[x |-> v] y=y (where y is not x)
[x |-> v] (function x -> t) = (function x -> t)
[x |-> v] (function y -> t) (where y is not x) =
(function y -> [x |-> v]t)
[x |-> v] (t1 t2) -> ([x |-> v]t1 [x |-> v]t2)
最初の 2 つのルールがよくわかりません。y が x であるかどうかで違いが生じるのはなぜですか? 最初の x と 2 番目の x は[x |-> v] x
同じですか? 2 番目のルールの y は次のようになり1+x
ますか? ラムダ式または C/C++/C#/Java で、それぞれ 2 つのルールを使用する 2 つの例を挙げていただけますか?
どうもありがとう!