皮肉なことに、タイトルは重要な意味を持っていますが、「ラムダ計算は単なる表記法である」という意味ではなく、正確ではありません。
ラムダ項は関数ではありません1。これらは構文の一部、つまりページ上のシンボルのコレクションです。これらのシンボルのコレクションを操作するためのルールがあり、最も重要なのはベータ削減です。あなたは複数持つことができます明確なラムダ用語に対応し、同じ機能を。2
あなたのポイントに直接対処します。
まず、ラムダは再利用されている名前ではありません。それは非常に紛らわしいだけでなく、(または)も記述しません。これは、λが関数の名前だった場合に行うことで、f (x )。で、F (X )私たちは置き換えることができ、Fをなどのラムダ項産何かで(それはラムダ項で定義されている場合)(λ Y 。Y )(X )の意味(λ Y 。Y )λ (x )(λ X ) λf(x )f(x )f(λ Y。y)(x )(λ Y。y)関数を宣言できる宣言ではなく、関数を表すことができる式です(名前はλまたはその他のです。いずれにせよ、用語/表記法をオーバーロードする場合、コンテキストを介して曖昧さをなくすことができる方法で(1つの希望)行われますが、これはラムダ用語には当てはまりません。
次のポイントは問題ありませんが、やや無関係です。これは、Team Lambdaの規約とチーム機能がある競争ではなく、勝者は1人だけです。ラムダ用語の主な用途は、特定の種類の関数の研究と理解です。多項式は関数ではありませんが、それらをしばしばだらだらと識別します。多項式を勉強することは、すべての関数が多項式であるべきだと考えることを意味するものではありません。また、勉強する価値があるために多項式が「新しい」何かを「しなければならない」場合もありません。
集合理論関数はブラックボックスではありませんが、完全に入出力関係によって定義されます。(文字通り、それらは入出力関係です。)ラムダ項もブラックボックスではなく、入出力関係によって定義されていません。前に述べたように、同じ入出力関係を生成する別個のラムダ項を持つことができます。これはまた、ラムダ項が関数を引き起こすことはできますが、ラムダ項が関数になることはできないという事実を強調しています。2
実際、多項式とラムダ項の類似性は非常に近いため、多項式とそれが表す関数の違いを理解できないかもしれないと思うので、少し詳しく説明します。3通常、多項式が導入された場合、通常は実数係数を使用して、特定のタイプの実数関数として扱われます。次に、線形フィードバックシフトレジスタ(LFSR)の理論を検討します。これは、主にF2上の(単変量)多項式の理論ですが、関数 F2→ F2として考えると、そのような関数は最大4です。ただし、超える無限数の多項式がありますF2。4これを確認する1つの方法は、これらの多項式をF2→ F2関数以外のものとして解釈できることです。実際、F2代数はすべて実行します。LFSRの場合、通常、多項式をビットストリームの演算として解釈します。これは、必要に応じて関数2N→ 2Nとして表すことができますが、そのような関数の大部分はLFSRの解釈のイメージにはありません。
これはラムダ用語にも当てはまり、それらの両方を関数以外のものとして解釈できます。また、これらは両方とも、通常は数え切れないほどの関数のセットよりもはるかに扱いやすいオブジェクトです。どちらも任意の関数よりもはるかに計算的です。多項式(少なくとも計算可能に表現可能な係数を使用)とラムダ項を操作するプログラムを作成できます。実際、型付けされていないラムダ項は、計算可能な関数の元のモデルの1つです。このより象徴的/構文的、計算的/計算的観点は、特に型付けされていない人にとっては、通常より強調されますラムダ計算では、ラムダ計算のより意味的な解釈よりもます。タイプラムダ項ははるかに管理しやすいものであり、通常(常にではないが)集合理論関数として簡単に解釈できますが、通常、型付けされていないラムダ計算よりもさらに幅広いクラスのものに解釈することもできます。また、独自の豊富な構文理論と、論理との非常に深いつながりがあります。
1問題が別の方向に進む可能性があります。機能とは何かを誤解しているかもしれません。
DDDDD⊆ D、およびセットのカテゴリには、重要な再帰オブジェクトはありません。型付きラムダ用語の場合、話はかなり異なりますが、それでも重要なことです。
3この区別が明確な場合、類推は非常に有益です。
4この問題は、複素数、実数、有理数、整数などの特性0のフィールドでは発生しないため、区別は存在しますが、それほど明確ではありません。