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