[解決済み] HaskellでHaskellインタプリタを書く
質問
古典的なプログラミングの練習として、Lisp/SchemeのインタープリタをLisp/Schemeで書くというものがあります。完全な言語の力を利用して、言語のサブセットのためのインタプリタを作成することができます。
Haskellにも同様の演習があるのでしょうか?Haskellをエンジンとして使って、Haskellのサブセットを実装してみたいのですが。もちろん、それは ができます。 はできますが、見ることができるオンラインリソースはありますか?
以下、裏話です。
の概念のいくつかを探求するための言語としてHaskellを使うというアイデアを探求しています。 離散構造 コースで教えています。今学期、私は ミランダ に決めました。Haskellに触発された小さな言語です。Miranda は私がやりたいことの 90% をやってくれますが、Haskell は 2000% をやってくれます。)
ですから、私のアイデアは、私が望むHaskellの機能を正確に持ち、それ以外はすべて禁止する言語を作成することです。生徒が上達するにつれて、基本をマスターしたら、私は選択的にさまざまな機能をオンにすることができます。
教育的なquot;言語レベル(lingua level)は Java と スキーム . できることを制限することで、あなたが教えようとしている構文や概念を習得している最中に、彼らが自ら足を踏み外すのを防ぐことができるのです。そして、より良いエラーメッセージを提供することができます。
どのように解決するのですか?
あなたの目標は素晴らしいですが、それは大きな仕事です。 いくつかヒントをあげましょう。
-
GHCで仕事をしたことがありますが、ソースの一部もいらないのですね。 ハグ はもっとシンプルできれいな実装ですが、残念ながらC言語です。
-
これはパズルの小さなピースですが、Mark Jonesが書いた美しい論文で Haskell を Haskell で入力する であり、これはあなたのフロントエンドのための素晴らしい出発点でしょう。
がんばってください。 Haskellの言語レベルを特定することは、教室からの裏付けとともに、コミュニティにとって大きな利益となり、間違いなく出版可能な結果でしょう!
関連
-
[解決済み】なぜパースエラーになるのか?インデント?
-
[解決済み] Haskellバイナリツリー
-
[解決済み] Project Eulerとの速度比較。CとPythonとErlangとHaskellの比較
-
[解決済み] Haskellにおける "リフティング "とは?
-
[解決済み】Haskellの入門編
-
[解決済み] GHCでコンパイルした小さなHaskellプログラムを巨大なバイナリにする
-
[解決済み] Haskellのガードとif-then-elseとcaseの比較
-
[解決済み] リストからn番目の要素を得るには?
-
[解決済み] Haskellの合成演算子(.)とF#のパイプ転送演算子(|>)の比較
-
[解決済み] 関数型プログラミングを実世界で使うには?[クローズド]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Haskellでの挿入ソート
-
[解決済み] Haskellです。パターンでのパースエラー
-
[解決済み] Hindley-Milnerのどの部分が理解できないのでしょうか?
-
[解決済み] GHCはなぜこんなに大きいのか/大きいのか?
-
[解決済み] Haskellのマルチコアプログラミングはどうなっているのか?
-
[解決済み] GHCでコンパイルした小さなHaskellプログラムを巨大なバイナリにする
-
[解決済み] このフィボナッチ関数はどのようにメモされているのですか?
-
[解決済み] Real World Haskellのどの部分が今となっては時代遅れ、あるいはバッドプラクティスと考えられているのでしょうか?
-
[解決済み] 難読化されたHaskellのコードはどのように動作するのでしょうか?
-
[解決済み] Haskellのストリクトネスポイントは何ですか?