麻烦在Haskell中使用map

Jon*_*FTW 1 haskell functional-programming

我正在尝试制作一个算法来解决Project Euler Problem 255

我想出了这个解决方案:

roundedSq n | (roundedSq n) == roundedSq (n-1) = n : roundedSq (n+1)
            | rem n 2 == 1  = n : floor ( ((2*10^((d-1) `div` 2)) + ceiling (n `div` (2*10^((d-1) `div` 2)) )) `div` 2 )
            | otherwise     = n : floor ( ((7*10^((d-2) `div` 2)) + ceiling (n `div` (7*10^((d-2) `div` 2)) )) `div` 2 )
        where
                d = length (map (digitToInt) (show (n)))

average a = (sum a) `div` (length a)
answer = average [map roundedSq [10E13..10E14]]

main = do
  print answer
Run Code Online (Sandbox Code Playgroud)

但每次我尝试加载时,都会出现answer计算功能错误.我做错了什么,这甚至会给我一个正确的解决方案,还是只是坚持一个循环?

Nef*_*byr 5

answer = average [map roundedSq [10E13..10E14]]
Run Code Online (Sandbox Code Playgroud)

您已将映射列表放入一个元素的列表中.我想也许你的意思是:

answer = average (map roundedSq [10E13..10E14])
Run Code Online (Sandbox Code Playgroud)