ラムダ紙の古典的なモデルはPythonでは有効ではないことを理解しています。
また、クロージャーはPythonシステムの実装の数学モデルではありません。
それでそれはどのモデルですか?
ラムダ紙の古典的なモデルはPythonでは有効ではないことを理解しています。
また、クロージャーはPythonシステムの実装の数学モデルではありません。
それでそれはどのモデルですか?
回答:
Pythonとラムダ計算に関する古典的な論文のモデルとの主な違いは、Pythonがマルチパラダイム言語であることです。ラムダ計算を検討するほとんどの論文は、他のパラダイム(OOPや論理プログラミングなど)を追加することによる複雑さなしに、純粋な関数型言語を検討しています。
質問とあなたのコメントから、あなたはそのようなマルチパラダイム言語の基礎に興味があると思います。その場合、Peter van RoyとSeif Haridiによるコンピュータープログラミングの概念、技法、およびモデルを強くお勧めします。この本は主にモーツァルト/オズ言語について書かれており、それ自体はかなり学術的な言語です。ただし、この本は、非常に小さなコア言語から始め、その上にオブジェクト指向、関数型、および論理プログラミングを構築する方法(およびすべて同じコア言語内)を非常に明確に示しています。
実際の数学モデルについては、ほとんどのプログラミング言語には非公式または準公式の仕様しかありません。ラムダ計算のような適切な理論を基礎とするものはめったにありません。発明され、多かれ少なかれ適用可能な多くの異なる数学モデルがあります。興味深いのは、プログラミングのセマンティクスがどのようにモデル化されるかについて、さまざまなアプローチに一般的な違いがあることです。セマンティクスは、表示、操作、または代数で記述できます。さらに深く学習したい場合は、プログラミングの統一理論について少し読むことから始めます。ただし、学習曲線が急で難しいものです。