数据类型的未绑定类型构造函数

时间:2018-10-12 10:10:02

标签: sml smlnj

如果我已经初始化数据类型dataype dd = DAT of int*int,那么如何为函数初始化该数据类型。

2 个答案:

答案 0 :(得分:2)

该类型称为Cint,而不是CI,因此您必须在需要类型的地方使用Cint

fun cadd(a:Cint, b:Cint) =

或者,如果您想继续使用数据类型构造函数CI,则可以使用涉及模式的其他语法:

fun cadd(a as CI _, b as CI _) =

答案 1 :(得分:0)

您也可以直接在函数中进行模式匹配,而无需使用大小写匹配:

datatype Cint = CI of int * int

fun get_first_val (CI (a, _)) = a
fun get_second_val (CI (_, b)) = b

fun cadd (CI (a1, b1), CI (a2, b2)) =
  CI (a1+a2, b1+b2)