It isn't clear to a newcomer whether cases fall through. That is: 
    
    
    if :
      a(0) : #whatever
      a(4) : #whatever
      a(8) : #whatever
      : #whatever
    
    
    Run

Sure, if you know in advance that `a(0)` does not carry down to `a(4)`, then 
fine. Otherwise, it seems to me that you're taking that first step towards the 
dark side, and before long you'll be running an annual Obfuscated Nim code 
contest.

Put differently, `else if` does not add that many symbols that need 
deciphering, and their meanings are naturally deciphered. Your approach doesn't 
add symbols (yay) but makes it a little harder to decipher (boo). Sort of like 
this: 
    
    
    a = ( b > c ) ? d : e ;
    
    
    Run

Sure, I can figure out what it means, but this Ada code (for instance) is so 
much easier to understand right off the bat: 
    
    
    a := ( if b > c then d else e );
    
    
    Run

Reply via email to