SML使用数据类型进行加减

时间:2014-11-02 07:15:33

标签: types sml

我想知道如何创建数据类型,这有助于评估字符串 包含(“1 + 2”)

我正在考虑制作数据类型

datatype opp = oper of string;
datatype numm = numb of int;
datatype calc = opp | numm;

1 个答案:

答案 0 :(得分:2)

我会说

datatype expr = Number of int | Add of expr * expr;

一起
 fun calc(Number(x)) = x
   | calc(Add(x, y)) = calc(x) + calc(y);

会做到这一点。但是,一旦开始添加更多运算符,您需要考虑关联性和运算符优先级。