Sha256: 5f82988a07c5df0280d1b2b5ff2d1b7d01e11aab1a1a7a79afd6936e9c4fba53

Contents?: true

Size: 690 Bytes

Versions: 301

Compression:

Stored size: 690 Bytes

Contents

module BankAccount

open System

type BankAccount() = 
    member val Lock = new Object()
    member val Balance: float option = None with get,set

let mkBankAccount() = BankAccount()

let openAccount (account: BankAccount) = 
    lock account.Lock (fun () ->
        account.Balance <- Some 0.0
        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

301 entries across 301 versions & 1 rubygems

Version Path
trackler-2.0.8.27 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.26 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.24 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.23 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.22 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.21 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.20 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.19 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.18 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.17 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.16 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.15 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.14 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.13 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.12 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.11 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.10 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.9 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.8 tracks/fsharp/exercises/bank-account/Example.fs
trackler-2.0.8.7 tracks/fsharp/exercises/bank-account/Example.fs