2014-01-08 30 views
3

通過Simon Peyton Jones併發例如工作的價值,我有以下代碼:看着的TVar在GHCI

import Control.Concurrent.STM 
import Control.Concurrent.STM.TVar 

deposit account amount = do 
    bal <- readTVar account 
    writeTVar account (bal+amount) 

我想在GHCI REPL測試這個

*Main> checking <- atomically $ newTVar 100 
*Main> atomically $ deposit checking 10 

我如何驗證我的支票餘額是110美元?

我已經試過

*Main> checking 
*Main> readTVar checking 
*Main> balance <- readTVar checking 

回答

6

atomically $ readTVar checking你想要做什麼。 GHCi REPL自動執行您提供的任何IO操作。

+2

對於這個簡單的例子,還有'readTVarIO',它相當於'atomically。 readTVar「,但效率更高。 –