这是家庭作业的节选。“Prog 这个数据类型应该只有一个构造函数,并用于表示以下形式的程序:
read vin1 ; read vin2 ; < some statements > write vout2 ;
这个构造函数也可以命名为 Prog,它采用一个字符串作为两个输入和一个输出变量的名称。”
将 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]