相关疑难解决方法(0)

Haskell中的点运算符:需要更多解释

我试图理解点运算符在这个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)

syntax haskell function-composition

82
推荐指数
5
解决办法
5万
查看次数

标签 统计

function-composition ×1

haskell ×1

syntax ×1