Sha256: e14080d6b343c724f37300bc10b90508cb9e7c34feba297abc913fdde4a7b0db
Contents?: true
Size: 693 Bytes
Versions: 49
Compression:
Stored size: 693 Bytes
Contents
module BankAccount open System type BankAccount() = member val Lock = new Object() member val Balance: decimal option = None with get,set let mkBankAccount() = BankAccount() let openAccount (account: BankAccount) = lock account.Lock (fun () -> account.Balance <- Some 0.0m account ) let closeAccount (account: BankAccount) = lock account.Lock (fun () -> account.Balance <- None account ) let getBalance (account: BankAccount) = account.Balance let updateBalance change (account: BankAccount) = lock account.Lock (fun () -> account.Balance <- Option.map ((+) change) account.Balance account )
Version data entries
49 entries across 49 versions & 1 rubygems