Haskell 哈斯克尔算子解释
我在Haskell中遇到了以下问题:Haskell 哈斯克尔算子解释,haskell,syntax,Haskell,Syntax,我在Haskell中遇到了以下问题:foldl(&&)True[False | p>这是应用于三个参数的foldl函数: (&&) True [False | p>这是应用于三个参数的foldl函数: (&&) True [False | p>请阅读 此:[expr | expr请阅读 这:[expr | exprfoldl运算符通过迭代列表并调用累加器上的二进制运算符和列表中的当前位置来累加值 也就是说,(&&&)意味着我们正在使用AND运算符对真值进行累加 现在是最后一部分。这是一个列表理解
foldl(&&)True[False | p>这是应用于三个参数的foldl
函数:
(&&)
True
[False | p>这是应用于三个参数的foldl
函数:
(&&)
True
[False | p>请阅读
此:[expr | expr请阅读
这:[expr | exprfoldl运算符通过迭代列表并调用累加器上的二进制运算符和列表中的当前位置来累加值
也就是说,(&&&)意味着我们正在使用AND运算符对真值进行累加
现在是最后一部分。这是一个列表理解。它类似于你可能在数学课上看到的集合表示法。基本上,我们定义了一个列表,|意味着,124;foldl运算符通过迭代列表并调用累加器上的二进制运算符和列表中的当前位置来累加值
也就是说,(&&&)意味着我们正在使用AND运算符对真值进行累加
现在进入最后一部分。这是一个列表理解。它类似于你可能在数学课上看到的集合符号。基本上,我们定义的是一个列表,|的意思是这样的,|那是一个你在哪里看到的?这只是一个写False
的漫长而复杂的方法,因为&
的第一个应用程序将产生一个False
值,该值将防止foldl
需要读取(无限)列表的其余部分(因为False&&&u==False
)。更糟糕的是,它从不终止,因为foldl
必须从“结束”开始请注意,在编程中,将这样的表达式分解为相关的部分是很重要的。这称为解析。在这种情况下,
和这是一个你从哪里看到的?这只是一种编写False
的漫长而复杂的方法,因为&
的第一个应用程序将产生一个False
值,它将防止foldl
需要读取(无限)列表的其余部分(因为False&&&&u==False
)。更糟糕的是,它从不终止,因为foldl
必须从“结束”开始请注意,在编程中,将这样的表达式分解为相关的部分是很重要的。这称为解析。在这种情况下,
和与前奏相同。和(而不是全部
)对于有限输入列表,但对于包含至少一个False
的无限列表,和
将返回False
,其中使用foldl
的此版本将永远不会返回。这与Prelude.和
相同(不是all
)对于有限输入列表,但对于包含至少一个False
的无限列表,和将返回False
,其中使用foldl
的此版本将永远不会返回。
foldl (&&) True (repeat False)