この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