-4

有人知道以下代码的功能吗?这是代码:

data Cases a = Case_A | Case_B | Case_C | Case_D

test_list :: Eq a => [a] -> [a] -> Cases a
test_list list_left list_right = case (list_left, list_right) of
  ([], []) -> Case_A
  ([], _) -> Case_B
  (_, []) -> Case_C
  (x:xs, y:ys)
       | (x==y) -> test_list xs ys
       | otherwise -> Case_D (x, y)

谁喜欢告诉我它的功能是什么?谢谢XD

4

1 回答 1

4

它应该是这种类型Case

data Cases a = Case_A | Case_B | Case_C | Case_D (a, a)

这四种情况的意思是:

  • Case_A: 两个列表是相等的
  • Case_B: 第一个列表是第二个列表的前缀
  • Case_C: 第二个列表是第一个列表的前缀
  • Case_D:两个列表有一个元素不匹配,它返回不匹配的元素。
于 2013-04-15T02:49:11.757 回答