このHaskellコードでドット演算子が何をしているのかを理解しようとしています:
sumEuler = sum . (map euler) . mkList
ソースコード全体は以下。
私の理解
ドット演算子は、2 つの関数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