haskell - 指定真实的条件数

use*_*032 2 haskell boolean list conditional-statements

如果我有4个布尔条件,并且我想说如果其中至少有3个为真,那么执行_ _,这是否可以在Haskell中实现?

或者我是否必须经历每个排列?(即1.True,2.True,3.True,4.False和1.False,2.True,3.True,4.True等)

谢谢!

小智 5

atleast :: Int -> [Bool] -> Bool
atleast n bools = length tn == n
  where  tn = take n . filter id $ bools
Run Code Online (Sandbox Code Playgroud)

除非我错过了什么,否则应该懒惰地工作.