以下函数计算我可以将一个数字除以另一个的频率:
divs n p = if (n `mod` p == 0) then 1 + divs (n `div` p) p else 0
有写
divs
的更短方法吗? 最佳答案
divs n p = case n `divMod` p of (q,0) -> 1 + divs q p; _ -> 0
而且更有效率!请注意,
quotRem
的行为与负值有所不同,但效率仍然要高一点。关于haskell - 计算我可以分割的频率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7241098/