Go backward to Primitive Domains Go up to Top Go forward to Sum Domains |
Payroll information (name, payrate, hours)
Domain Payroll =
String x Rat x Rat
Operationsnewemp: String -> Payroll(a1,a2,...,an).i = ai
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)