私は、適用されたラムダ計算を理解しようとしています。これまでは、型推論の仕組みを理解していました。しかし、私は、用語がよくタイプされているか、またはタイプミスであるということの意味に従うことができません。そして、どのタイプが適切なタイプのものか、タイプの悪いものかを決定する方法はありますか? たとえば、λ用語tw
をλx[(x x)]
と定義します。どのようにそれはよく型付けされたまたは悪い型の用語であると結論ですか?よく入力された型の悪いラムダ用語
答えて
さらにいくつかの定数および基本タイプ(すなわちラムダ計算)が適用されているSimply Typed Lambda Calculusについて言えば、λx:σ. (x x)
という表現は整形式ですが型が不正です。
「整形式」は、構文的に正しいことを意味します。つまり、STLCのパーサーによって受け入れられます。 'ill-typed'は、型チェッカーがそれ以上のものを渡すことを意味しません。 タイプチェッカーは、typing rulesに従って動作します。これは通常、多くのタイピング判定(各構文形式の1つのタイピングスキーム)として表されます。
あなたが提供した言葉は実際にはタイプミスであることを示してください。 ルール(3)[型付きルールのリンクを参照]によると、λx:σ. (x x)
は一般的な形式の型でなければなりません(はの関数、より正確には抽象であるため)。しかし、本体(x x)
は、あるタイプτ
(x : σ
と仮定する)を持っていなければなりません。これは基本的に自然言語で表現された同じルール(3)です。ですから、関数の本体の型を理解する必要があります。これはアプリケーションです。今
、アプリケーションのためのルールは、(4)私たちは、この(e1 e2)
ような表現を持っている場合、適切な型の引数でなければならない、そしてe1
は、いくつかの機能e1 : α -> β
とe2 : α
でなければならないと述べています。この規則を体の式(x x)
に適用してみましょう。 (1)x : α -> β
および(2)x : α
である。 STLCの用語は1つの型しか持てないため、式はα -> β = α
です。 しかし、α
はα -> β
のサブパートであるため、両方のタイプを統合する方法はありません。だから、これは型チェックをしません。
ちなみに、STLCの主なポイントの1つは、(タイプなしの)ラムダ計算を論理として使用することを妨げるため、自己申請を禁止することです((x x)
など)。アプリケーション(例えば、Y-combinatorを参照)。
- 1. ラムダ式の悪質な戻り型
- 2. mysqlのペルシア語またはアラビア語のアルファベットを入力してください
- 3. 入力されていない角型入力検証クラス
- 4. 強く型付けされた言語の違いは?
- 5. Elif悪い入力でtrinket.io
- 6. 型入力プロジェクトと完全に型指定されたリポジトリの使用
- 7. ユーザーの入力を入力して単語のdup()に入れてくださいTASM
- 8. 汎用型パラメータで制約されたパラメータ型のラムダ関数を返す
- 9. PyCharmの略語を入力してください
- 10. Android - EditTextフィールドに入力された入力を確認してください
- 11. 英語の単語を入力して、整数を返してください
- 12. void入力のラムダ式
- 13. 強く型付けされたクライアント側の言語ですか?
- 14. 悪いオペランドの型「*」
- 15. 「exit」と入力するまで単語を入力するようユーザーに依頼してください。
- 16. 私の悪い英語のための
- 17. 安全なオブジェクトデータ型を入力してください
- 18. CSVの単語がユーザ入力で検出されました
- 19. 誤り訂正ループは、悪い入力
- 20. C++ラムダ:良いリファレンスと悪いリファレンス
- 21. は、静的に型付けされた言語で、JVMのラムダをサポートしていますか?
- 22. 入力テキストボックスに英語以外の言語を入力するにはどうすればよいですか?
- 23. 入力が隠さ型
- 24. DynamoDBに裏打ちされたNodeJSラムダ関数の入力検証
- 25. 入力ボタンによって起動されたMVC3入力ボタン
- 26. キーボードのレイアウトが言語と入力に表示されない
- 27. 角型UIの先行入力でモデルがリフレッシュされない
- 28. キャストするためのきれいなアプローチC#での匿名型への強く型入力
- 29. 入力した単語をJavaのテキストファイルに入れる方法
- 30. テキストエリアの入力が入力されたとおりに表示されない
[CS.SE](http://cs.stackexchange.com)には、このような質問が適しています。なぜなら、そこで式を表すためにLatex-markupを使用できるからです。 –