如果我们有一个给定的谓词p :: [Bool] -> Bool,它接受无限列表作为参数并返回True或False基于某些未知条件,并且我们不知道这个谓词是什么。
p :: [Bool] -> Bool
True
False
我们能否设计一个函数f :: ([Bool] -> Bool) -> [Bool],采用这样的谓词并返回一个无限列表 l where p l == True,假设谓词是可满足的。
f :: ([Bool] -> Bool) -> [Bool]
p l == True
haskell predicate list bitstring
bitstring ×1
haskell ×1
list ×1
predicate ×1