标准的ml数据类型函数



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

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;

您需要根据值构造函数IF进行模式匹配,并执行任何适当的

fun plus (I a) (I b) = I (a+b)
  | plus (I a) (F b) = ...
  | etc...

这给你4个案例。当然,如果您制作一个将number解包为real的小辅助函数,以包含除int-int之外的所有情况,那么您也可以只使用两种情况来执行此操作。

最新更新