asd*_*fjk 0 haskell pattern-matching
我得到以下代码的非详尽模式异常
--determine which list is longer
longer::[a]->[a]->Bool
longer [] [] = False
longer _ [] = True
longer (_:[]) (_:[]) = False
longer (_:xs) (_:ys) = longer xs ys
Run Code Online (Sandbox Code Playgroud)
我不明白我在这里做错了什么。
你不是在处理这个案例:
longer [] _ = undefined
Run Code Online (Sandbox Code Playgroud)
该模式(_:[])假定列表中至少有一个元素。在您的代码中,您缺少第一个列表为空而第二个列表可能不为空的情况。