<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE message PUBLIC
  "-//MLarc//DTD MLarc output files//EN"
  "../../mlarc.dtd"[
  <!ATTLIST message
    listname CDATA #REQUIRED
    title CDATA #REQUIRED
  >
]>

  <?xml-stylesheet href="../../mlarc.xsl" type="text/xsl"?>


<message 
  url="2002/12/5833c628ad7eb5017603c6a0f60ca7e8"
  from="Xavier Leroy &lt;xavier.leroy@i...&gt;"
  author="Xavier Leroy"
  date="2002-12-12T14:16:07"
  subject="Re: [Caml-list] Resource acquisition is initialization"
  prev="2002/12/d9879736886f7d0799a45d28d7845728"
  next="2002/12/fa5147003546a7ff957dba5a5ab3012d"
  prev-in-thread="2002/12/d9879736886f7d0799a45d28d7845728"
  next-in-thread="2002/12/1fc22ef6af0290c23b787df542ce98bc"
  prev-thread="2002/12/a7df150482511ac2dc29aad949c1630c"
  next-thread="2002/12/e9bc0bae209d5d139109989b178cbc85"
  root="../../"
  period="month"
  listname="caml-list"
  title="Archives of the Caml mailing list">

<thread subject="[Caml-list] Resource acquisition is initialization">
<msg 
  url="2002/12/919e5b9de09938198c2fd0856d238c55"
  from="Blair Zajac &lt;blair@o...&gt;"
  author="Blair Zajac"
  date="2002-12-11T19:18:46"
  subject="[Caml-list] Resource acquisition is initialization">
<msg 
  url="2002/12/5fc049891ea11b2acd98c914bdd66486"
  from="Brian Hurt &lt;brian.hurt@q...&gt;"
  author="Brian Hurt"
  date="2002-12-11T19:47:44"
  subject="Re: [Caml-list] Resource acquisition is initialization">
<msg 
  url="2002/12/5170d849604617577c466f9ddbc70c6a"
  from="Chet Murthy &lt;chet@w...&gt;"
  author="Chet Murthy"
  date="2002-12-12T00:29:37"
  subject="Re: [Caml-list] Resource acquisition is initialization ">
</msg>
<msg 
  url="2002/12/2820617a735026a0db6d33ccaaf53c59"
  from="Alessandro Baretta &lt;alex@b...&gt;"
  author="Alessandro Baretta"
  date="2002-12-12T07:54:49"
  subject="Re: [Caml-list] Resource acquisition is initialization">
<msg 
  url="2002/12/fa5147003546a7ff957dba5a5ab3012d"
  from="Brian Hurt &lt;brian.hurt@q...&gt;"
  author="Brian Hurt"
  date="2002-12-12T16:32:25"
  subject="Re: [Caml-list] Resource acquisition is initialization">
</msg>
</msg>
<msg 
  url="2002/12/4f5285419bbec1c865398ea6d1f21997"
  from="Mike Potanin &lt;potanin@m...&gt;"
  author="Mike Potanin"
  date="2002-12-13T09:08:43"
  subject="Re: [Caml-list] Resource acquisition is initialization">
<msg 
  url="2002/12/bef5070e1bc3ca250bf2f818ad6ff8fa"
  from="David Brown &lt;caml-list@d...&gt;"
  author="David Brown"
  date="2002-12-13T17:05:51"
  subject="Re: [Caml-list] Resource acquisition is initialization">
</msg>
</msg>
</msg>
<msg 
  url="2002/12/f0675ccbe1bf6bcbf69263f410121e17"
  from="Xavier Leroy &lt;xavier.leroy@i...&gt;"
  author="Xavier Leroy"
  date="2002-12-12T13:17:08"
  subject="Re: [Caml-list] Resource acquisition is initialization">
<msg 
  url="2002/12/d9879736886f7d0799a45d28d7845728"
  from="Dmitry Bely &lt;dbely@m...&gt;"
  author="Dmitry Bely"
  date="2002-12-12T14:07:03"
  subject="Re: [Caml-list] Resource acquisition is initialization">
<msg 
  url="2002/12/5833c628ad7eb5017603c6a0f60ca7e8"
  from="Xavier Leroy &lt;xavier.leroy@i...&gt;"
  author="Xavier Leroy"
  date="2002-12-12T14:16:07"
  subject="Re: [Caml-list] Resource acquisition is initialization">
</msg>
</msg>
<msg 
  url="2002/12/1fc22ef6af0290c23b787df542ce98bc"
  from="Blair Zajac &lt;blair@o...&gt;"
  author="Blair Zajac"
  date="2002-12-12T23:59:11"
  subject="Re: [Caml-list] Resource acquisition is initialization">
</msg>
<msg 
  url="2002/12/880189f28b91773cde73a547cf10094b"
  from="Quetzalcoatl Bradley &lt;qbradley@b...&gt;"
  author="Quetzalcoatl Bradley"
  date="2002-12-13T11:27:48"
  subject="Re: [Caml-list] Resource acquisition is initialization">
</msg>
</msg>
</msg>
</thread>

<contents>
&gt; Maybe I don't understand something but IMHO it's not very usable because
&gt; with_file_in type is fixed after the first use. So e.g. input_line and
&gt; input_char operation cannot be mixed. You cannot write something like
&gt; 
&gt; let process filename =
&gt;   let f = with_file_in filename in
&gt;      begin
&gt;        print_string (f input_line);
&gt;        print_char   (f input_char); (* syntax error! *)
&gt;      end

Even without the typing problem, this would open and close the file
twice, which isn't what you want.  The correct usage is:

let process filename =
  with_file_in filename
    (fun ic -&gt;
       print_string (input_line ic);
       print_char (input_char ic))

- Xavier Leroy
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners

</contents>

</message>

