Last modified on 31 October 2012, at 14:03

REBOL Programming/modulo

USAGE:Edit

MODULO a b 

DESCRIPTION:Edit

Wrapper for MOD that handles errors like REMAINDER. Negligible values (compared to A and B) are rounded to zero.

MODULO is a function value.

ARGUMENTS:Edit

  • a -- (Type: number money time)
  • b -- Absolute value will be used (Type: number money time)

(SPECIAL ATTRIBUTES)Edit

  • catch

SOURCE CODEEdit

modulo: func [
    {Wrapper for MOD that handles errors like REMAINDER. Negligible
^-^-values (compared to A and B) are rounded to zero.} 
    [catch] 
    a [number! money! time!] 
    b [number! money! time!] "Absolute value will be used" 
    /local r
][
    throw-on-error [
        any [number? a b: make a b] 
        r: mod a abs b 
        either any [a - r = a r + b = b] [make r 0] [r]
    ]
]