【发布时间】:2018-10-18 15:28:10
【问题描述】:
如果我已经初始化了一个数据类型dataype dd = DAT of int*int,我该如何为函数初始化一个类型。
【问题讨论】:
如果我已经初始化了一个数据类型dataype dd = DAT of int*int,我该如何为函数初始化一个类型。
【问题讨论】:
类型被称为Cint,而不是CI,所以你必须在需要类型的地方使用Cint:
fun cadd(a:Cint, b:Cint) =
或者,如果您想继续使用数据类型构造函数CI,您可以使用不同的语法,包括模式:
fun cadd(a as CI _, b as CI _) =
【讨论】:
您也可以直接在函数中进行模式匹配,而不是使用 case-of:
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)
【讨论】: