我有一个函数fromRange
,它接受一个过滤函数和一个区间,并返回一个集合,其中包含区间中满足过滤函数的所有元素。
我使用列表理解实现了它:
fromRange :: (Integer->Bool) -> (Integer,Integer) -> [Integer]
fromRange f (x,y) = [i | i<-[x..y], f i]
但是大列表需要很长时间,所以我找到了懒惰的评估概念,但我不知道如何实现它,有什么帮助吗?
我有一个函数fromRange
,它接受一个过滤函数和一个区间,并返回一个集合,其中包含区间中满足过滤函数的所有元素。
我使用列表理解实现了它:
fromRange :: (Integer->Bool) -> (Integer,Integer) -> [Integer]
fromRange f (x,y) = [i | i<-[x..y], f i]
但是大列表需要很长时间,所以我找到了懒惰的评估概念,但我不知道如何实现它,有什么帮助吗?