【发布时间】:2009-03-10 16:59:13
【问题描述】:
我试图了解点运算符在此 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
【问题讨论】:
标签: haskell syntax function-composition