previous up next
Go backward to Product Domains
Go up to Top
Go forward to Sum Domains
RISC-Linz logo

Sum Domains

Revised payroll information

Domain Payroll =
    String x (Day + Night) x Rat
    where Day = Night = Rat
Operations
newemp: String -> Payroll
newemp(n) = (n, inDay(min), 0)
move-to-day: Payroll -> Payroll
move-to-day(emp) = (emp.1,
    cases emp.2 of
        isDay(wage) -> inDay(wage)
        isNight(wage) -> inDay(wage)
    end,
    emp.3)
compute-pay: Payroll -> Rat
compute-pay(emp) =
    cases emp.2 of
        isDay(wage) ->
            multrat(wage)(emp.3)
        isNight(wage) -> multrat(1.5)
            (multrat(wage)(emp.3))
    end

Author: Wolfgang Schreiner
Last Modification: October 14, 1997

previous up next