【发布时间】:2019-01-10 23:00:48
【问题描述】:
我正在尝试创建一个函数,该函数将元组列表作为参数并按第二个元素排序。它不会打印任何其他内容,只是错误“*** Exception: main.hs:20:1-76: Non-exhaustive patterns in function sortWords” 代码如下:
sortWords :: [(String, Int)] -> [(String, Int)]
sortWords [(str,num)] = sortBy (\x y -> compare (snd x) (snd y)) [(str,num)]`
这是我调用函数的方式
main = do
putStrLn $ show $ sortWords [("friend",1),("she",2)]
我不得不说我在http://Repl.it网站上运行我的程序
谢谢!
【问题讨论】:
-
该模式只匹配只有一个元素的列表。
-
那么如何创建一个模式来匹配列表中的多个元素? @DannyuNDos
-
@s_diaconu 请为您的新问题创建另一个问题。
-
使用
-Wall启用警告,GHC 会指出丢失的案例。