2014-11-20 177 views
0

因此,我將一個3元組列表傳遞給該函數,並且想要返回該元組的第一個和第三個元素,爲什麼這裏的代碼不工作?從列表中獲取第3個元素的第一個元素和第二個元素 - Haskell

remove :: (a, b, c) -> (a,c) 
remove (x, _, y) = (x,y) 

我得到的錯誤是

*** Expression  : remove (sortScore b h) 
*** Term   : sortScore b h 
*** Type   : [(Val,Int,End)] 
*** Does not match : (a,b,c) 

回答

3

sortScore返回3元組列表,但remove只接受一個。

您可以使用map申請remove給每個元素從sortScore返回

map remove (sortScore b h) 
0

您需要使用map列表sortScore b h變換每個元組:

map remove $ sortScore b h 

不能將remove只是sortScore b h因爲最後一個是列表,但remove工作在元組上。

+0

好了,我的意思是說第一和第三,讓我編輯 – Sprout 2014-11-20 23:54:51

相關問題