これは宿題からの抜粋です。"Progこのデータ型にはコンストラクターが1つだけあり、次の形式のプログラムを表すために使用する必要があります。
read vin1 ; read vin2 ; < some statements > write vout2 ;
このコンストラクターは、Progという名前も付けられ、2つの入力変数と1つの出力変数の名前の文字列を取ります。」
expProgをProg型であり、左上のプログラムの抽象構文表現であると定義します。これは次のように実行する必要があります。
expProg = Prog "x" "y" <some statements> "z"
私はHaskellを初めて使用し、これに混乱しています。
このようなコンストラクターを作りました。しかし、これは正しくないようです。
data Prog = Prog String String String
deriving (Show,Eq)
誰かがここで何が起こっているのか説明できますか?このコンストラクターの作り方がわかりません。ステートメント用に作成したデータ型は次のとおりです。
data Stmt = Assing String Expr
| WhileLoop Expr Stmt
| Ifthen Expr Stmt
| IfthenElse Expr Stmt Stmt
| Composition [Stmt]