管道中的F#更新变量

时间:2020-04-13 09:01:21

标签: f# pipe

是否可以更新管道执行流程的参数? addBalance函数是在帐户上调用updateBalance和getBalance函数的函数。我无法更新这部分代码,它在另一个模块中。

let account = mkBankAccount() |> openAccount
let openingBalance = account |> getBalance 

let addedBalance = 
    account 
    |> updateBalance 10.0m
    |> getBalance

如何更新帐户变量,以确保更新后的余额安全? 我当前使用的方法不是永久更新余额:

let updateBalance change account = {balance = account.balance + change ; accStatus = account.accStatus}

谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您可以执行此操作,执行ti的一种方法是将account添加为参数,以便

None

别忘了F#默认是不可变的,这可能意味着您需要更改对“ upup account”的看法,实际上您将拥有一个let addedBalance acct = acct |> updateBalance 10.0m |> getBalance

的新实例。