Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 列表理解中的哈斯克尔懒惰_Haskell_Range_List Comprehension - Fatal编程技术网

Haskell 列表理解中的哈斯克尔懒惰

Haskell 列表理解中的哈斯克尔懒惰,haskell,range,list-comprehension,Haskell,Range,List Comprehension,我想取所有偶数的和,我不是正数,但我认为问题是Haskell需要检查(无限)列表的每个元素[1..],以确保它得到满足给定谓词的所有元素。哈斯克尔不是一个定理证明者。它不知道不可能有一个元素是的,现在看起来很明显。。。我本可以把|x==100000000放在那之后。。。我不知道我是怎么忽略了这一点的……正如我对这个问题的评论一样,这一点现在看起来很明显,我不知道我是怎么忽略了它的。你能解释一下第二段中第一个x前面的反斜杠是什么意思吗?@yannbane:这是一个lambda表达式。它生成一个匿名

我想取所有偶数的和,我不是正数,但我认为问题是Haskell需要检查(无限)列表的每个元素
[1..]
,以确保它得到满足给定谓词的所有元素。哈斯克尔不是一个定理证明者。它不知道不可能有一个元素
是的,现在看起来很明显。。。我本可以把
|x==100000000
放在那之后。。。我不知道我是怎么忽略了这一点的……正如我对这个问题的评论一样,这一点现在看起来很明显,我不知道我是怎么忽略了它的。你能解释一下第二段中第一个x前面的反斜杠是什么意思吗?@yannbane:这是一个lambda表达式。它生成一个匿名函数,该函数接受参数
x
sum [x | x <- [1..], even x && x <= 1000]
sum (filter (\x -> even x && x <= 1000) [1..])
sum (takeWhile (<= 1000) $ filter even [1..])