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

Version Path
trackler-2.2.1.180 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.179 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.178 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.177 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.176 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.175 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.174 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.173 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.172 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.171 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.170 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.169 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.167 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.166 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.165 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.164 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.163 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.162 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.161 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.2.1.160 tracks/fsharp/exercises/bank-account/Example.fs