Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://www.haskell.org/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. Issue with lazy eval + trace (Hugo Ferreira)
----------------------------------------------------------------------
Message: 1
Date: Mon, 07 Nov 2011 08:41:24 +0000
From: Hugo Ferreira <[email protected]>
Subject: [Haskell-beginners] Issue with lazy eval + trace
To: [email protected]
Message-ID: <[email protected]>
Content-Type: text/plain; charset=ISO-8859-15; format=flowed
Hello,
I am using "import Debug.Trace" to debug some code but it is
not working as expected. I believe this is due to lazy evaluation.
But I cannot see how I can circumvent it. To exemplify I have
the following function:
tagFun :: (POSTags -> Tag) -> POSTags -> POSTags
tagFun f corpus = Z.foldlz' tag Z.empty corpus
where
tag acc z = Z.insert newTag acc
where
(token, correctTag, _proposdTag) = trace "cursor " Z.cursor z
proposed = trace "proposed tag" (f z)
newTag = ( token, correctTag, proposed )
If I place tracing at:
tag acc z = trace ("tag "++token++" = "++ show newTag) Z.insert
newTag acc
then it works ok. However the lines
(token, correctTag, _proposdTag) = trace "cursor " Z.cursor z
proposed = trace "proposed tag" (f z)
don't work. They only appear once. I assume they should appear with
every element in the zipper. Can anyone explain why?
TIA,
Hugo F.
------------------------------
_______________________________________________
Beginners mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/beginners
End of Beginners Digest, Vol 41, Issue 8
****************************************