List 如何从haskell中的元组列表中获取特定值?

List 如何从haskell中的元组列表中获取特定值?,list,haskell,pattern-matching,tuples,List,Haskell,Pattern Matching,Tuples,我有这样一个函数: selectValue1 :: Int -> [(Int,Int)] -> [Int] selectValue1 a [(x,y)]= [ y |(x,y)<-[(x,y)],x<-(x,y),x==a ] 为什么会发生这种情况??如何完成上述任务??有什么解决办法吗??谢谢大家。:)selectValue 1a xs=[y |(x,y)顺便说一句,最简单的方法可能是selectValue=fromJust.lookup@fuzzxl,除了我完全同意

我有这样一个函数:

selectValue1 :: Int -> [(Int,Int)] -> [Int]
selectValue1 a [(x,y)]= [ y |(x,y)<-[(x,y)],x<-(x,y),x==a ]

为什么会发生这种情况??如何完成上述任务??有什么解决办法吗??谢谢大家。:)

selectValue 1a xs=[y |(x,y)顺便说一句,最简单的方法可能是
selectValue=fromJust.lookup
@fuzzxl,除了我完全同意之外,他似乎想得到整个匹配列表。另一个选项是:
selectValue a=map snd$filter((==a).fst)
Type error in generator
*** Term           : (x,y)
*** Type           : (Int,Int)
*** Does not match : [a]
selectValue1 a xs = [ y | (x,y) <- xs, x == a ]