4
我有這樣的功能:如何採取從哈斯克爾元組列表中的特定值?
selectValue1 :: Int -> [(Int,Int)] -> [Int]
selectValue1 a [(x,y)]= [ y |(x,y)<-[(x,y)],x<-(x,y),x==a ]
我想要做的是一個元組列表傳遞給函數,並採取在元組中的第二個項目,如果在元組中的第一個項目,輸入匹配。但是這個功能給我一個錯誤:
Type error in generator
*** Term : (x,y)
*** Type : (Int,Int)
*** Does not match : [a]
爲什麼會發生這種情況??上面的任務怎麼做?任何解決方案謝謝大家.. :)
BTW,最簡單的方法是可能'selectValue = fromJust。 lookup'。 – fuz 2010-10-19 07:22:23
@ FUZxxl exept,它似乎是他希望得到比賽的整個列表,其他然後,我完全同意。另一個選項是:'selectValue a = map snd $ filter(((== a)。fst)' – HaskellElephant 2010-10-19 10:38:43