Forth

Forth

上級

説明

Forthのごく単純なサブセットを評価する評価機を実装します。

Forthはスタックベースのプログラミング言語です。 Forthの小さなサブセットを評価する、ごく基本的な評価機を実装しましょう。

評価機は次のワードに対応する必要があります。

  • +、-、*、/(整数演算)
  • DUP、DROP、SWAP、OVER(スタック操作)

また、慣習的な構文 : word-name definition ; を使って新しいワードを定義する機能にも対応する必要があります。

話を簡単にするため、対応が必要なデータ型は16ビット以上の符号付き整数だけです。

構文には次のルールを使います。数値は1つ以上の(ASCII)数字の並びで、ワードは数値ではない1つ以上の英字、数字、記号、句読点の並びです。 (Forthはおそらくもう少し違うルールを使っていますが、これで十分近いはずです。)

ワードは大文字と小文字を区別しません。

ヒント

この演習を完了するには、データ型ForthStateを作成し、次の関数を実装する必要があります。

  • emptyStateは、空のForthStateを返します。
  • evalTextは、入力のTextを評価し、新しい状態を返します。
  • toListは、現在のスタックを配列として返します。スタックの一番上の要素が、いちばん右(最後)の要素になります。

ダミーのデータ宣言と型シグネチャーはすでに用意されていますが、関数を定義し、意味のあるデータ型、newtype、型シノニムを作るのは自分で行う必要があります。

GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
Haskell Exercism

Forthを始める準備はできましたか?

Exercismに登録すれば、107個の演習、そして本物の人間によるメンタリングとともに、Haskellを学んでマスターできます。すべて無料です。