title: scanf not accepting first arg
body: <p>The following code runs with no errors:</p>
  
  <pre><code>let f x y =
      print_int (max x y);
      print_char ' ';
      print_int (x + y) in
  for i = 1 to Scanf.scanf "%d" (fun x -&gt; x) do
      Scanf.scanf "\n%d %d" f;
      print_newline ();
  done;
  </code></pre>
  
  <p>But when I declare a variable fmt to hold the format "\n%d %d" and pass it to scanf,I get an error,here is the new code:</p>
  
  <pre><code>let f x y =
      print_int (max x y);
      print_char ' ';
      print_int (x + y) in
  let fmt = "\n%d %d" in (* added *)
  for i = 1 to Scanf.scanf "%d" (fun x -&gt; x) do
      Scanf.scanf fmt f; (* edited *)
      print_newline ();
  done;
  </code></pre>
  
  <p>I get this error:</p>
  
  <pre><code>  File "prog.ml", line 7, characters 16-19:
    Error: This expression has type string but an expression was expected of type
       ('a, Scanf.Scanning.in_channel, 'b, 'c -&gt; 'd, 'a -&gt; 'e, 'e) format6
  </code></pre>
  
  <p>Why does it work differently?is there any difference between the two codes?</p>