这是我的代码,它不断给我提供未绑定的错误消息。
我实际上是SML的新手。所以,我真的不知道如何解决它。
似乎使用a和b是件坏事。
我尝试声明a
和b
a : int;
b : int;
但仍然无法正常工作。
我该如何解决这个问题?
答案 0 :(得分:1)
这只是一个语法问题。您遗失的所有代码都是|
,用于分隔calculate
的子句。只需在第5-8行的开头添加一个。
答案 1 :(得分:1)
除了Andreas提及的函数子句之间缺少|
之外,您无法将+
,-
,*
和div
运算符应用于值输入 calctree 。您需要先使用函数将每个a
和b
减少为整数。例如,
datatype ops = PLUS | MINUS | TIMES | DIV
datatype calctree = LEAF of int | CALC of ops * calctree * calctree
fun getOp PLUS = op +
| getOp MINUS = op -
| getOp TIMES = op *
| getOp DIV = op div
fun calc (LEAF x) = x
| calc (CALC (oper, a, b)) = getOp oper (calc a, calc b)