私は Haskell を学んでいますが、もう少し複雑な述語を作成する方法を考えています。
たとえば、私はこれを行うことができます:
any ( >= 5 ) my_list
しかし、私はこのようなことをする方法を見つけることができません:
any (x `mod` 2 == 0) my_list
どうすればこれを行うことができますか?
私は Haskell を学んでいますが、もう少し複雑な述語を作成する方法を考えています。
たとえば、私はこれを行うことができます:
any ( >= 5 ) my_list
しかし、私はこのようなことをする方法を見つけることができません:
any (x `mod` 2 == 0) my_list
どうすればこれを行うことができますか?
本当に複雑なものについては、別の関数を定義したほうがよいでしょう。小規模なケースでは、ラムダまたは次のようなものを使用できます
any predicate myList
where predicate x = even x
編集: x も単純化したものです。次のようなものを置くことができますwhere predicate x = (mod x 3) == 1
ラムダ関数を使用します。
any (\x -> x `mod` 2 == 0) my_list