Beeflang - open source performance-oriented compiled programming language
Patrick Schluter
Patrick.Schluter at bbox.fr
Fri Jan 10 08:48:02 UTC 2020
On Thursday, 9 January 2020 at 17:19:38 UTC, Gregor Mückl wrote:
> On Thursday, 9 January 2020 at 16:58:16 UTC, Basile B. wrote:
>> 5. `repeat {} while ()` and `do {}` lacks of orthogonality.
>> `do {} while (false);` could
>> have been used instead, saving `repeat`. This new
>> statement a very few value added
>> but I understand that it's tempting to invent small
>> things like that when creating a
>> language.
>
> do {} has a separate meaning in beef. These blocks are not
> looping, but using break; is valid in them to skip to their
> end. While this is certainly creative, I don't know if it all
> that useful. But it burns the "do" keyword in the grammar and
> something else is required to start a do/while block.
What? They put that asinine "do {break; } while(0)" non-looping
loop C idiom in the language as a 1st order construct?
That language is therefore officially deadbeef for me.
I hate that construct with a passion (I had to work on too much
code using that). It is an obfuscated goto for people who want to
use gotos but are not man enough to actually use goto. It is
worse that a real goto, as with a real goto you have a label at
the destination.
More information about the Digitalmars-d
mailing list