[Haskell] ANNOUNCING: The Haskell Bookstore

Marcin 'Qrczak' Kowalczyk qrczak at knm.org.pl
Fri Jun 25 06:32:17 EDT 2004


W liście z pią, 25-06-2004, godz. 12:30 +0200, Daan Leijen napisał(a):

> It seems to me that returning the old value is always good
> enough right?  Here is an implementation of "atomicModifyIORef"
> with the current type in terms of a function "proposedModifyIORef" with
> type (2).
> 
> atomicModifyIORef :: IORef a -> (a -> (a,b)) -> IO b
> atomicModifyIORef ref f
>    = do old <- proposedModifyIORef ref (fst . f)
>         return (snd (f old))

It applies f twice, which may duplicate work.

-- 
   __("<         Marcin Kowalczyk
   \__/       qrczak at knm.org.pl
    ^^     http://qrnik.knm.org.pl/~qrczak/




More information about the FFI mailing list