title: What are Some and None?
body: <p>I came across some output I don't understand using <code>Vec::get</code>. Here's the code:</p>
  <pre><code>fn main() {
      let command = [('G', 'H'), ('H', '5')];
  
      for i in 0..3 {
          print!(&quot; {} &quot;, i);
          println!(&quot;{:?}&quot;, command.get(i));
      }
  }
  </code></pre>
  <p>the output is</p>
  <pre class="lang-none prettyprint-override"><code> 0 Some(('G', 'H'))
   1 Some(('H', '5'))
   2 None
  </code></pre>
  <p>I've dabbled in Haskell before, and by that I mean looked at a tutorial site for 10 minutes and ran back to C++, but I remember reading something about <code>Some</code> and <code>None</code> for Haskell. I was surprised to see this here in Rust. Could someone explain why <code>.get()</code> returns <code>Some</code> or <code>None</code>?</p>