-1
2つのリストを持つ関数を実装しようとしています。最初の型はすべての型で、2番目はブール型で、最初のリスト真と等しい。例:ここではHaskellでパターンマッチングを行う2つのリストを比較します。
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'が真であるかどうかをテストする必要があります。そうであれば' x'を返し、その後に再帰呼び出しによって与えられたリストを返します。それ以外の場合は、再帰呼び出しによって与えられたリストを返します。 – chi
'pickIt x y = [a | (a、b)< - zip x y、b] :: [a] - > [Bool] - > [a] ' – BlackCap