【问题标题】:Unbound Type Constructor for datatype数据类型的未绑定类型构造函数
【发布时间】:2018-10-18 15:28:10
【问题描述】:

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

【问题讨论】:

    标签: sml smlnj


    【解决方案1】:

    类型被称为Cint,而不是CI,所以你必须在需要类型的地方使用Cint

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

    或者,如果您想继续使用数据类型构造函数CI,您可以使用不同的语法,包括模式:

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

    【讨论】:

      【解决方案2】:

      您也可以直接在函数中进行模式匹配,而不是使用 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)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-24
        • 1970-01-01
        • 1970-01-01
        • 2019-09-23
        • 1970-01-01
        • 2013-08-14
        • 1970-01-01
        相关资源
        最近更新 更多