【问题标题】:Checking for equality in lists in SML在 SML 中检查列表中的相等性
【发布时间】:2022-04-04 03:33:53
【问题描述】:

我想编写一个函数来检查 SML 中列表的相等性 例如:

[1,2,3]=[1,2,3];
val it = true : bool

所以我不想写下整个事情,而是想创建一个函数,它接受两个预定义列表,并比较它们,这样如果 list01[1,2,3]list09[1,2,3] 然后fun equal (list01, list09); 将返回-val it = true : bool;

【问题讨论】:

  • “写下整个事情”是什么意思?写equal (list01, list09)实际上比写list01 = list09要长,那么你想避免写的“整件事”是什么?
  • 我认为创建函数 compare ([list01,list09]) 会更容易;比手动比较这两个列表,如果它们非常!长。

标签: equality sml


【解决方案1】:

您似乎知道 = 适用于列表,所以(正如我在评论中已经说过的)我不明白您为什么需要定义 equal 函数。

话虽如此,你可以写:

fun equal (a, b) = (a = b);

【讨论】:

    【解决方案2】:

    这是一个未检查的示例:

    fun compare ([], []) = true # both empty
      | compare (x::xs, y::ys) = (x = y) and compare(xs,ys)
      | compare (_, _) = false # different lengths
        
    

    【讨论】:

      猜你喜欢
      • 2011-05-26
      • 1970-01-01
      • 2013-12-18
      • 2015-11-23
      • 2014-11-14
      • 2016-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多