<div>It seems that both your suggestions have worked ! Thank you very much. But I still can&#39;t figure out what went wrong.<br></div><div><br></div><div>My initial goal was to keep the minimum inside the if ... then ... else statement. Basically, if the list is empty, then stop. If not, then assign the argument to sacFile1, and go on with the rest.</div>

<div><br></div><div>Here is what it looks like now:</div><div>module Main () where<br><br>import System.IO<br>import System.Environment(getArgs)<br>import Data.Char(intToDigit)<br><br>import SAC_Type<br>import SAC_IO<br>
<br>
main :: IO()<br>main = do<br>     -- On commence par ouvrir le fichier SAC en mode binaire<br>     argsList &lt;- getArgs<br>     if (null argsList)<br>           then<br>                     putStrLn $ &quot;No filename given to the program.\n $ ProgramName file.sac&quot;<br>

           else do<br>                sacFile1 &lt;- openBinaryFile (head argsList) ReadMode<br><br>                position &lt;- hTell sacFile1<br>                putStrLn $ &quot;Position 1: &quot; ++ [intToDigit( fromInteger (position) )]<br>

<br>                hSeek sacFile1 AbsoluteSeek 440<br>                position2 &lt;- hTell sacFile1<br>                putStrLn $ &quot;Position 2: &quot; ++ [intToDigit( fromInteger (position2) )]<br><br>                -- A la fin, il faut evidemment le fermer<br>

                hClose sacFile1</div><div><br><br></div><div>Thank you, Danke, 谢谢, merci, etc...</div><div><br></div><div class="gmail_quote">2010/2/26 Daniel Fischer <span dir="ltr">&lt;<a href="mailto:daniel.is.fischer@web.de">daniel.is.fischer@web.de</a>&gt;</span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Am Freitag 26 Februar 2010 17:37:30 schrieb Magnus Therning:<br>
<div class="im">&gt; It doesn&#39;t look like a complete piece of code so these comments aren&#39;t<br>
&gt; backed up by running it through GHCi or anything.<br>
&gt;<br>
&gt; On Fri, Feb 26, 2010 at 16:29, Florian Duret &lt;<a href="mailto:flo.morphe@gmail.com">flo.morphe@gmail.com</a>&gt;<br>
wrote:<br>
&gt; &gt; Hello,<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; I try to set up a verification on the number of arguments given to my<br>
&gt; &gt; program, but keep on getting &quot;Parse error in pattern&quot;<br>
&gt; &gt; Here is what my code looks like:<br>
&gt; &gt; main :: IO()<br>
&gt; &gt; main = do<br>
&gt; &gt;     -- On commence par ouvrir le fichier SAC en mode binaire<br>
&gt; &gt;     argsList &lt;- getArgs<br>
&gt; &gt;     if (length (argsList) == 0)<br>
<br>
</div>It&#39;s most likely harmless for argument lists (although there are other<br>
cases), but<br>
<br>
Don&#39;t Use<br>
<br>
if (length list == 0)<br>
<br>
Never. Jamais. Niemals.<br>
<br>
Use<br>
<br>
if (null list)<br>
<br>
length has to traverse the entire list, which may take a long time.<br>
<div class="im"><br>
&gt; &gt;        then do<br>
&gt; &gt;              putStrLn $ &quot;No filename given to the program.\n $<br>
&gt; &gt; ProgramName file.sac&quot;<br>
&gt; &gt;              return ()<br>
&gt;<br>
&gt; I believe the &#39;do&#39; here is unecessary.<br>
&gt;<br>
<br>
</div>As soon as the unnecessary &quot;return ()&quot; is removed.<br>
<div class="im"><br>
&gt; &gt;       else<br>
&gt; &gt;              sacFile1 &lt;- openBinaryFile fileToOpen ReadMode<br>
&gt;<br>
&gt; Here you do need a &#39;do&#39; though, I believe.<br>
&gt;<br>
<br>
</div>Yes. If he binds the name sacFile1 to a value, there must come more<br>
statements after it, so the &quot;do&quot; is required.<br>
<br>
But it might also be wrong indentation, if the mail programme fiddled with<br>
that.<br>
<div class="im"><br>
&gt; &gt; ghci complains, and tells &quot;Parse error in pattern&quot;, indicating the<br>
&gt; &gt; &#39;if&#39; line number.<br>
<br>
</div>Invoke ghci with<br>
<br>
$ ghci -ferror-spans file<br>
<br>
to see how far GHC thinks the erroneous pattern extends. From that, one can<br>
often deduce better what the problem is.<br>
<div><div class="h5"><br>
&gt; &gt; Can you please help ?<br>
&gt; &gt; Thank you very much,<br>
&gt; &gt; Florian<br>
<br>
</div></div></blockquote></div><br>