Bra*_*FRZ 1 haskell list lazy-evaluation
有没有办法评估无限列表之间的列表差异?例如,([1..] \\ [2*n | n <- [1..]])应该求[1,3,5,7,... ].不幸的是,它似乎迫使对第一个或第二个列表或两者进行评估.有没有办法避免这个得到答案?即使使用take 5 ([1..] \\ [2*n | n <- [1..]])不评估[1,3,5,7,9],这显然是正确的.注意,\\运算符是从Data.List导入的.
如果列表已排序,您可以使用该data-ordlist包.
Data.List.Ordered> take 5 ([1..] `minus` [2,4..])
[1,3,5,7,9]
Run Code Online (Sandbox Code Playgroud)