Hi Daniel,<br><br>That works just as intended, Thanks.<br><br><div class="gmail_quote">On Tue, Jun 8, 2010 at 1:31 AM, Daniel Fischer <span dir="ltr">&lt;<a href="mailto:daniel.is.fischer@web.de">daniel.is.fischer@web.de</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div class="im"><br>
</div>Does<br>
<br>
calcMD5 =<br>
    readDirectoryWith (\x -&gt; do<br>
        txt &lt;- readFile x<br>
        return $! md5 txt)<br>
<br>
help?<br>
<div class="im"><br>
&gt;<br>
&gt; `----<br>
&gt;<br>
&gt; This work perfectly for small directories. readDirectoryWith is<br>
&gt; already defined in the library and exactly what we want<br>
&gt;<br>
&gt; ,----<br>
&gt;<br>
&gt; | *Main&gt; calcMD5 &quot;/home/mitra/Desktop/&quot;<br>
&gt; |<br>
&gt; | &quot;/home/mitra&quot; :/ Dir {name = &quot;Desktop&quot;, contents = [File {name =<br>
&gt; | &quot;060_LocalMirror_Workflow.t.10.2.62.9.log&quot;, file =<br>
&gt; | f687ad04bc64674134e55c9d2a06902a},File {name = &quot;cmd_run&quot;, file =<br>
&gt; | 6f334f302b5c0d2028adeff81bf2a0d9},File {name = &quot;cmd_run~&quot;,<br>
&gt;<br>
&gt; `----<br>
&gt;<br>
&gt; However when ever I give it something more challenging it gets into<br>
&gt; trouble.<br>
&gt;<br>
&gt; ,----<br>
&gt;<br>
&gt; | *Main&gt; calcMD5 &quot;/home/mitra/laptop/&quot;<br>
&gt; | *** Exception: /home/mitra/laptop/ell/calc-2.02f/calc.info-27:<br>
&gt; |    openFile: resource exhausted (Too many open files)<br>
&gt; | *Main&gt; 29~<br>
&gt;<br>
&gt; `----<br>
&gt;<br>
&gt; If I understand what is happening it seems to be doing all the opens<br>
&gt; before consuming them via md5. This works fine for small directories<br>
&gt; but for any practical setup this could potentially be very large. I<br>
&gt; tried forcing the md5 evaluation in the hope that the file descriptor<br>
&gt; will be freed once the entire file is read. That did not help, either<br>
&gt; because I could not get it right or there is some more subtle I am<br>
&gt; missing.<br>
&gt;<br>
&gt; I also had a look at the code in module &quot;System.Directory.Tree&quot; and<br>
&gt; although it gave me some understanding of how it works I am no closer<br>
&gt; to a solution.<br>
&gt;<br>
&gt; regards<br>
<br>
</div>_______________________________________________<br>
Beginners mailing list<br>
<a href="mailto:Beginners@haskell.org">Beginners@haskell.org</a><br>
<a href="http://www.haskell.org/mailman/listinfo/beginners" target="_blank">http://www.haskell.org/mailman/listinfo/beginners</a><br>
</blockquote></div><br>