<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表してい
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表してい
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。
<expr> ::= <identifier> <expr> ::= (λ<identifier>. <expr>) <expr> ::= (<expr> <expr>) 最初の2つの規則は関数の定義を表しており、3つめの規則は関数に引数を適用することを表している。規則2のことをラムダ抽象といい、規則3のことを関数適用という。 関数適用は左結合であることと、ラムダ抽象はその後ろに続く全ての式を束縛することの2点をもってあいまいさが排除される場合は、括弧を省略してもよい。 例えば、 ((λx. ((x x) x)) (λy. y)) はより簡単に (λx. x x x) λy. y と書くことができる。
ラムダ抽象によって'束縛されていない変数を自由変数という。式 λx. (x y) において、 y は自由変数である。ある変数の出現が自由出現であるかどうかは、より正確には以下のように帰納的に定義されている。
ラムダ式 V が変数のとき、 V は自由出現である。 ラムダ式 λV. E において、 E で自由出現している変数のうち V 以外のものが自由出現である。 このとき、 E 中の変数 V はラムダに束縛されたという。 ラムダ式 (E E′) において、 E での自由出現と E′ での自由出現の和が自由出現である。 ラムダ式の集合の上での同値関係(ここでは == と書くことにする。 などと書くこともある)は、直感的には、2つのラムダ式が同じ関数を表していることである。 この同値関係は以下で述べるα-変換とβ-簡約によって定義される。第3の規則としてη-変換と呼ばれる規則が導入されることもある。
アルファ変換の基本的なアイデアは、束縛変数の名前は重要ではない、ということにある。 例えば、 λx. x と λy. y は同じ関数を表している。