Language mavens: Is there a programming with "if then else ENDIF" syntax?

MRAB python at mrabarnett.plus.com
Mon Nov 16 13:37:22 EST 2009


Nobody wrote:
> On Mon, 16 Nov 2009 08:54:28 -0800, Steve Ferg wrote:
> 
>> For a long time I've wondered why languages still use blocks
>> (delimited by do/end, begin/end, { } , etc.) in ifThenElse statements.
>>
>> I've often thought that a language with this kind of block-free syntax
>> would be nice and intuitive:
>>
>>     if <condition> then
>>         do stuff
>>     elif <condition> then
>>         do stuff
>>     else
>>         do stuff
>>     endif
>>
>> Note that you do not need block delimiters.
> 
>> Does anybody know a language with this kind of syntax for
>> ifThenElseEndif? 
> 
> BBC BASIC V had if/then/else/endif (it didn't have elif).
> 
I forgot about that one. :-(

I used to do this in order if I wanted to avoid a lot of indentation:

CASE TRUE OF
WHEN <condition>
     do something
WHEN <condition>
     do something
OTHERWISE
     do something
ENDCASE

> "make" has if/else/else/endif (it doesn't have a dedicated elif, but
> "else if ..." behaves like elif rather than starting a nested "if").
> 
>> Is there any particular reason why this might be a *bad* language-
>> design idea?
> 
> Blocks can be useful for other reasons (e.g. limiting variable scope), so
> if you already have them, you don't need to provide dedicated blocks
> for control constructs.
> 




More information about the Python-list mailing list