-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