Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
20
Task/Currency/Haskell/currency.hs
Normal file
20
Task/Currency/Haskell/currency.hs
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
import Data.Fixed
|
||||
import Text.Printf
|
||||
|
||||
type Percent = Centi
|
||||
type Dollars = Centi
|
||||
|
||||
tax :: Percent -> Dollars -> Dollars
|
||||
tax rate = MkFixed . round . (rate *)
|
||||
|
||||
printAmount :: String -> Dollars -> IO ()
|
||||
printAmount name = printf "%-10s %20s\n" name . showFixed False
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
let subtotal = 4000000000000000 * 5.50 + 2 * 2.86
|
||||
tx = tax 7.65 subtotal
|
||||
total = subtotal + tx
|
||||
printAmount "Subtotal" subtotal
|
||||
printAmount "Tax" tx
|
||||
printAmount "Total" total
|
||||
Loading…
Add table
Add a link
Reference in a new issue