[Haskell-cafe] different behaviours with or without putStrLn
benjamin.foppa at gmail.com
Sun Jan 12 22:10:43 UTC 2014
Depending on the kind of state, WHNF may not be enough - have you tried
On Sun, Jan 12, 2014 at 5:07 PM, Corentin Dupont
<corentin.dupont at gmail.com>wrote:
> Hi guys,
> I'm experimenting different behaviours with or without a "putStrLn"! :(
> Basically, with the following code, I want the evaluation to really happen
> on the "evaluate".
> I found out that it doesn't: it is evaluated elsewhere (I don't know
> If I put a putStrLn (commented below), the evaluation really happens there.
> *execCommand :: (TVar MyState) -> StateT MyState IO () -> IO ()
> execCommand ts sm = do s <- atomically $ readTVar ts s' <- execStateT
> sm s s'' <- evaluate s' --evaluation should happen here, but it
> doesn't --putStrLn $ displayMulti $ _multi s'' atomically $ writeTVar
> ts s''*
> To give you more context, I have a state that, when evaluated, might not
> So I added a watchdog (like in mueval), that will kill the thread in case
> the evaluation doesn't terminate.
> That's why I need to be sure of where the evaluation takes place.
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Haskell-Cafe