-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)

4 つのケースの意味は次のとおりです。

  • Case_A: 2 つのリストが等しかった
  • Case_B: 最初のリストは 2 番目のリストのプレフィックスです
  • Case_C: 2 番目のリストは最初のリストのプレフィックスです
  • Case_D: 2 つのリストに要素の不一致があり、一致しなかった要素を返します。
于 2013-04-15T02:49:11.757 に答える