我创建了一个类型编号的数据类型,可以是int或real,我需要创建一个函数来添加2个数字类型" 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;
答案 0 :(得分:1)
您需要针对值构造函数I
和F
进行模式匹配,并执行适当的操作
fun plus (I a) (I b) = I (a+b)
| plus (I a) (F b) = ...
| etc...
这给你4个案例。你当然也可以只用2个案例来做,如果你做一个小帮助函数,将number
解包到real
,除了int
- {{1}之外的其他所有函数} case。