第一个问题是编写一个函数来获取列表中的最后一个元素。
解决方案部分提供的第一个解决方案是:
myLast :: [a] -> a
myLast [x] = x
myLast (_:xs) = myLast xs
所以在 GHCi 我做了:
Prelude> let myLast [a] = a
Prelude> let myLast (_:xs) = myLast xs
Prelude> myLast [1,2,3]
这给了我一个例外:
*** Exception: <interactive>:12:5-29: Non-exhaustive patterns in function myLast
为什么这不起作用?