使用 GHCi 我执行以下操作:
prelude> let lol [] = []
prelude> let lol (x:xs) = (lol xs) ++ [x]
当我尝试评估
prelude> lol [1, 2, 3]
我明白了
Exception: <interactive>:3:5-32: Non-exhaustive patterns in function lol
我想我理解了这个问题(列表有 1 个元素不匹配?)但看不出他为什么不能将 x:xs 匹配为 x:[]