[Haskell-cafe] Strictness in do block
Bulat Ziganshin
bulat.ziganshin at gmail.com
Wed Jul 5 08:18:05 EDT 2006
Hello John,
Wednesday, July 5, 2006, 3:04:22 PM, you wrote:
> What I want to know is the generic way to force an entire String (or
> other list, perhaps from hGetContents) to be evaluated (read into RAM, I
> guess) so the underlying file can be closed.... and do it right now.
eval [] = []
eval (x:xs) = eval xs
do str <- getContents
return $! eval str
....
is my usual hack. there is also `deepSeq` if you need to fully
evaluate more complex structure. btw, this 'eval' don't evaluate list
elements - it should be not a problem for evaluation result of
'getContents'
--
Best regards,
Bulat mailto:Bulat.Ziganshin at gmail.com
More information about the Haskell-Cafe
mailing list