小编Ben*_* Wa的帖子

haskell中的无限列表与fold*组合不计算

假设我希望得到一个排序无限的所有素数列表,直到指数n.

我有一个函数来合并两个排序列表和一个给我素数的函数.

merge :: Ord t => [t] -> [t] -> [t]
merge (x:xs) (y:ys)
    | (x <= y) = x : merge xs (y:ys)
    | otherwise = y : merge (x:xs) ys
merge xs [] = xs
merge [] ys = ys

primes :: [Integer]
primes = sieve [2..]
    where
        sieve [] = []
        sieve (p:xs) = p : sieve (filter (\x -> x `mod` p /= 0) xs)
Run Code Online (Sandbox Code Playgroud)

我有两个版本的listOfPrimepowers功能:

primepowers :: Integer -> [Integer] …
Run Code Online (Sandbox Code Playgroud)

haskell map infinite fold

7
推荐指数
1
解决办法
630
查看次数

标签 统计

fold ×1

haskell ×1

infinite ×1

map ×1