3

Haskell を学びたいとずっと思っていたので、最近 ProjectEuler の問題に取り組み始めました。(/ n)次のファクタリング コードを書いているときに、callingが aFloat(n `div`)返し、 がを返すことに気付きましたInt。中置記法は Haskell の単なる構文糖衣だと思いましたか? 誰かが何が起こっているのか説明できますか? また、コメント/提案/改善をいただければ幸いです。ありがとうございます。

    import Data.List (sort)

    factor :: Int -> [Int]
    factor 0 = [1..]
    factor n =
        let f1 = [f | f <- [1..limit], n `mod` f == 0]
                where limit = ceiling $ sqrt $ fromIntegral n
            f2 = map (n `div`) f1   --vs. map (/ n) f1
        in sort $ f1 ++ f2
4

2 に答える 2