列表理解永无止境

时间:2015-02-16 19:18:01

标签: list haskell list-comprehension infinite-loop

这个功能是为我解决项目euler中的问题而制作的,但我不知道为什么它不会结束。我认为列表理解中存在“n”作为结果,但我已经改为“x + y”但仍然不起作用。

writable :: Int -> [Int]
writable n
  | n `elem` primes = []
  | otherwise = [x + y | x <- primes_less, y <- double_of_squares, x + y == n]
where
  primes_less = takeWhile (< n) primes
  double_of_squares = takeWhile (< n) $ map (\x -> 2*x*x) [1..]

0 个答案:

没有答案