Function 标准ml数据类型函数

Function 标准ml数据类型函数,function,types,union,sml,ml,Function,Types,Union,Sml,Ml,我创建了一个数字类型的数据类型,可以是int或real,我需要创建一个函数来添加类型“number”的两个数字,我遇到的问题是定义这种语法的语法,我尝试了以下方法,但似乎都不起作用。 我编写的代码如下所示,以下代码是这样编写的,用于检查函数是否识别n为number类型: fun plus n:number = "type number"; fun plus n:I = "type int of number"; fun plus n:number.I = "type int of numbe

我创建了一个数字类型的数据类型,可以是int或real,我需要创建一个函数来添加类型“number”的两个数字,我遇到的问题是定义这种语法的语法,我尝试了以下方法,但似乎都不起作用。 我编写的代码如下所示,以下代码是这样编写的,用于检查函数是否识别n为number类型:

fun plus n:number = "type number";

fun plus n:I = "type int of number";

fun plus n:number.I = "type int of number";
但似乎都不起作用,我写的语法是正确的还是错误的? 谢谢

我写的数据类型号是:

datatype number = 
  I of int
| F of real;

您需要对值构造函数
I
F
进行模式匹配,并执行任何适当的操作

fun plus (I a) (I b) = I (a+b)
  | plus (I a) (F b) = ...
  | etc...
这给你4箱。当然,如果你制作一个小的助手函数,将一个
数字
解包成一个
实数
,以包含除
int
-
int
之外的所有情况,你也可以只使用2个案例