1

OK、それで、与えられた のすべての要因を効率的に検出する Haskell 関数を書こうとしていますIntこの質問で与えられた解決策に基づいて、私は次のものを手に入れました:

-- returns a list of the factors of n
factors         ::  Int -> [Int]
factors n       =   sort . nub $ fs where
                        fs  =   foldr (++) [] [[m,n `div` m] | m <- [1..lim+1], n `mod` m == 0]
                        lim =   sqrt . fromIntegral $ n

悲しいことに、GHCi はetc.No instance for (Floating Int)を含む行に があることを知らせてくれます。lim =

私はこの回答を読みました.GHCiに直接入力すると、提案された解決策が機能しsqrtますInt. ただし、まったく同じコードのように見えるものを関数に配置すると、機能しなくなります。

私はHaskellに比較的慣れていないので、助けていただければ幸いです!

4

2 に答える 2