我试图理解点运算符在这个Haskell代码中做了什么:
sumEuler = sum . (map euler) . mkList
Run Code Online (Sandbox Code Playgroud)
整个源代码如下.
点运算符将两个函数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
Run Code Online (Sandbox Code Playgroud)