有人知道以下代码的功能吗? 这是代码:
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
答案 0 :(得分:4)
Case
:
data Cases a = Case_A | Case_B | Case_C | Case_D (a, a)
这四个案例意味着:
Case_A
:两个名单相同Case_B
:第一个列表是第二个列表的前缀Case_C
:第二个列表是第一个列表的前缀Case_D
:这两个列表的元素不匹配,并返回不匹配的元素。