title: Why is it okay to write or but not ||?
body: <p>I understand there is a difference in the precedence as shown in <a href="https://stackoverflow.com/a/2083118/2909897">another answer</a>:</p>
  
  <pre><code>p foo = false || true
  # =&gt; true
  
  p foo = false or true
  # =&gt; false
  </code></pre>
  
  <p>But it seems like there is something more that's different between <code>or</code> and <code>||</code>.</p>
  
  <p>For example:</p>
  
  <pre><code>p foo = 42 or raise "Something went wrong with foo"
  # =&gt; 42
  p foo = nil or raise "Something went wrong with foo"
  # =&gt; Something went wrong with foo (RuntimeError)
  p foo = 42 || raise "Something went wrong with foo"
  # =&gt; syntax error, unexpected tOP_ASGN, expecting end-of-input
  </code></pre>
  
  <p>I was expecting to get:</p>
  
  <pre><code>p foo = 42 or raise "Something went wrong with foo"
  # =&gt; 42
  p foo = nil or raise "Something went wrong with foo"
  # =&gt; Something went wrong with foo (RuntimeError)
  p foo = 42 || raise "Something went wrong with foo"
  # =&gt; Something went wrong with foo (RuntimeError)
  </code></pre>
  
  <p>But it's a syntax error. So what is happening?</p>