Go backward to Product Domains Go up to Top Go forward to Sum Domains |
Revised payroll information
Domain Payroll =
String x (Day + Night) x Rat
where Day = Night = Rat
Operationsnewemp: 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