最佳答案
我试图理解点运算符在这段 Haskell 代码中的作用:
sumEuler = sum . (map euler) . mkList
下面是整个源代码。
点运算符以两个函数 sum
和 map euler
的结果以及 mkList
的结果作为输入。
但是,sum
不是一个函数,它是函数的参数,对吗? 那么这里发生了什么?
还有,(map euler)
在做什么?
mkList :: Int -> [Int]
mkList n = [1..n-1]
euler :: Int -> Int
euler n = length (filter (relprime n) (mkList n))
sumEuler :: Int -> Int
sumEuler = sum . (map euler) . mkList