我在Haskell中遇到过以下内容:foldl (&&) True [False | _ <- [1..]].我知道foldl函数做了什么,这个表达式涉及无限递归,但这个表达式实际意味着什么?我主要不确定在这种情况下做什么|和<-做什么.
这是foldl应用于三个参数的函数:
(&&)True[False | _ <- [1..]]第三个参数是由列表推导定义的列表.它只是一个无限的False值序列:列表是使用从无限序列1,2,3 ...... False中_拉出的每个值构建的.它可以更简单地定义为repeat False:
foldl (&&) True (repeat False)
Run Code Online (Sandbox Code Playgroud)