title: "let is unfinished. expect an expression" error. I don't see where though
body: <pre><code>open System
  
  let highLowGame () = 
      let rng = new Random();
      let secretNumber = rng.Next() % 100 + 1
  
      let rec highLowGameStep () = 
          printfn "Guess a number: "
          let guessStr = Console.ReadLine()
          let guess = Int32.Parse(guessStr)
          match guess with
          | _ when guess &gt; secretNumber -&gt; printfn "Too high!" highLowGameStep ()
          | _ when guess = secretNumber -&gt; printfn "You got it!" ()
          | _ when guess &lt; secretNumber -&gt; printfn "Too low!" highLowGameStep ()
  
  
  [&lt;EntryPoint&gt;]
  let main argv = 
      highLowGame ()
      0 // return an integer exit code
  </code></pre>
  
  <p>I know there's tons of these questions and I get that a function in F# must have a return variable. Mine is here <code>| _ when guess = secretNumber -&gt; printfn "You got it!" ()</code> so I don't understand why it keeps telling me that my block is unfinished</p>
  
  <p>This example is straight out of the F# 3.0 book.</p>
  
  <pre><code>/stdin(14,13): error FS0010: Unexpected identifier in expression. Expected incomplete structured construct at or before this point or other token.
  </code></pre>
  
  <p>is the full error.</p>