-1
我想实现一个函数,我有两个列表,第一个是任何类型,第二个是布尔,我希望它只返回第一个列表,如果它是等于true。例如:比较两个列表与模式匹配在Haskell
pickIt [1, 2, 3] [True, False, True] returns [1, 3]
这里是我的代码:
pickIt :: [a] -> Bool -> [a]
pickIt (x:xs) (y:ys) = (x, y) : pickIt xs ys
pickIt _ _ = []
我想我喜欢的类型是错的,但我对如何处理这个完全难住了。任何帮助,指导或链接都是正确的方向将会有所帮助。
您需要测试'y'是否为true:如果是,则返回'x',后跟递归调用给出的列表;否则,你只需返回递归调用给出的列表。 – chi
'pickIt x y = [a | (a,b)< - zip x y,b] :: [a] - > [Bool] - > [a]' – BlackCap