古典的なプログラミング演習は、Lisp / SchemeでLisp / Schemeインタープリターを作成することです。完全な言語の能力を活用して、言語のサブセットのインタープリターを作成できます。
Haskellにも同様の演習はありますか?Haskellをエンジンとして使用して、Haskellのサブセットを実装したいと思います。もちろんそれは可能ですが、見ることができるオンラインリソースはありますか?
これがその裏話です。
私は、Haskellを言語として使用して、私が教えている離散構造コースのいくつかの概念を探求するという考えを模索しています。この学期では、Haskellに影響を与えた小さな言語であるMirandaに落ち着きました。ミランダは私がやりたいことの約90%をしますが、ハスケルは約2000%します。:)
したがって、私の考えは、Haskellの機能を正確に備え、他のすべてを許可しない言語を作成することです。生徒が進むにつれて、基本を習得したら、さまざまな機能を選択的に「オン」にすることができます。
教育学的な「言語レベル」は、JavaとSchemeを教えるためにうまく使用されてきました。彼らができることを制限することによって、彼らがあなたが教えようとしている構文と概念をまだ習得している間、彼らが足で自分自身を撃つことを防ぐことができます。そして、あなたはより良いエラーメッセージを提供することができます。