有人知道下面代码的功能吗? (Haskell的)

时间:2013-04-15 02:25:47

标签: function haskell case

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

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

1 个答案:

答案 0 :(得分:4)

Case

应为此类型
data Cases a = Case_A | Case_B | Case_C | Case_D (a, a)

这四个案例意味着:

  • Case_A:两个名单相同
  • Case_B:第一个列表是第二个列表的前缀
  • Case_C:第二个列表是第一个列表的前缀
  • Case_D:这两个列表的元素不匹配,并返回不匹配的元素。