title: A somewhat painful triple-nested ternary operator
body: <p>I went looking through <code>Raphael.js</code>'s source code to find out how he converted RGB values to HSB. I found out the function he did it in and I was in the process of converting it to Python when I bumped into this nice triple-nested ternary operator:</p>
  
  <pre><code>H = (C == 0 ? null :
      V == r ? (g - b) / C :
      V == g ? (b - r) / C + 2 :
               (r - g) / C + 4
      );
  </code></pre>
  
  <p>It threw me for a loop because Python doesn't have the same kind of ternary operator that Javascript does. I spent a while looking over it and eventually hashed this somewhat saner code (using only if/else) out of it:</p>
  
  <pre><code>if (C == 0) {
      H = null;
  } else {
      if(V == r) {
          H = (g - b) / C;
      } else {
          if(V == g) {
              H = (b - r) / C + 2;
          } else {
              H = (r - g) / C + 4;
          }
      }
  }
  </code></pre>
  
  <p>Was my interpretation correct? I'm only asking this because if it isn't correct, I'm faced with a <em>lot</em> of debugging. So. Did I "get it"?</p>