On Saturday 14 May 2011 15:55:15, Henning Thielemann wrote:
> Chris Smith schrieb:
> > Sure... see quotRem in the prelude.
> 
> http://www.haskell.org/haskellwiki/Haskell_programming_tips#Forget_about
> _quot_and_rem

No, don't, just know when you want which.
quot and rem are what you get from the hardware (perhaps not all, but 
most), thus they are faster. If speed is important and the semantics 
coincide (e.g. when all operands are positive), use quot and rem.

If the semantics of quot or rem are better for your goal than those of div 
or mod (example from GHC.Float.floatToDigits:

        -- Using quot instead of div is a little faster and requires
        -- fewer fixup steps for negative lx.
        let lx = p - 1 + e0
            k1 = (lx * 8651) `quot` 28738

), use quot or rem.

div and mod have the better semantics for most use-cases, so they should be 
what one normally uses, but there are cases where you want quot and rem. 
For those cases, knowing them causes happiness.

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to