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

Product Domains

Payroll information (name, payrate, hours)

Domain Payroll =
    String x Rat x Rat
Operations
newemp: String -> Payroll
newemp(name) = (name, min, 0)
    where min in Rat
    and 0 = makerat(0)(1)
upd-payrate: Rat x Payroll -> Payroll
upd-payrate(pay, emp) =
    (emp.1, pay, emp.3)
upd-hours: Rat x Payroll -> Payroll
upd-hours(hours, emp) =
    (emp.1,emp.2,
    addrat(hours)(emp.3))
compute-pay: Payroll -> Rat
compute-pay(emp) =
    multrat(emp.2)(emp.3)
(a1,a2,...,an).i = ai

Author: Wolfgang Schreiner
Last Modification: October 14, 1997

previous up next