我试图了解在此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