1
条件を入力リストに依存するフィルタの作成に興味があります。具体的には、フィルタを定義して、入力リストの任意の数で数値が割り切れるかどうかをチェックしたいと考えています。そうだろう、単一の要素について:リスト要素に基づくフィルタ条件の作成
my_filter a = filter (\x -> x `mod` a == 0)
基本的に私は入力リストを持っている場合、それは次の操作を行うであろうと、このような拡張したい:
my_filter [a,b] = filter (\x -> x `mod` a == 0 || x `mod` b == 0)
どのように私はこのフィルタを定義することができます再帰的に、リストの各要素が新しい条件を作成するように?
my_filter divisors = filter (\x -> or $ map ((0 ==) . (x `mod`)) divisors)
すべての値は除数た場所をフィルタリングしたい場合は、あなただけのand
にor
を変更する必要があります。
'any'関数は、この' or'/'map'の組み合わせを正確に書きました! '' 'any(\ d - > x' mod'd == 0) '' 'のように、' map'を条件に半分だけ入れるのではなく、豚全体を移動するだけです。 –