我正在尝试创建一个函数,该函数将元组列表作为参数并按第二个元素进行排序。它不会打印其他内容,仅显示错误“ ***例外:main.hs:20:1-76:函数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网站上运行程序
谢谢!
答案 0 :(得分:6)
def search(A):
j=1
while j in A:
j+=1;
return j;
(上面的)函数定义模式匹配包含单个元素的列表,该元素是一个元组,具有两个值的变量。
您似乎只想要一个变量,而不想要任何模式匹配:
sortWords [(str,num)] =
或eta减少:
sortWords xs = sortBy (\x y -> compare (snd x) (snd y)) xs