Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #136481
| From | Ben Bacarisse <ben.usenet@bsb.me.uk> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: An enhancement |
| Date | 2018-10-09 14:41 +0100 |
| Organization | A noiseless patient Spider |
| Message-ID | <87in2butja.fsf@bsb.me.uk> (permalink) |
| References | <531a5bb6-dc81-4eeb-9adf-1bf8eb310f65@googlegroups.com> <87efd0vwx1.fsf@bsb.me.uk> <8874a5e1-64b6-461c-93f0-1416f96420d4@googlegroups.com> <8736tfx6s2.fsf@bsb.me.uk> <df9962ae-4df7-458c-8f4c-82d3d79d46a8@googlegroups.com> |
David Kleinecke <dkleinecke@gmail.com> writes:
> On Monday, October 8, 2018 at 6:12:20 PM UTC-7, Ben Bacarisse wrote:
>> David Kleinecke <dkleinecke@gmail.com> writes:
>>
>> > On Monday, October 8, 2018 at 4:30:40 PM UTC-7, Ben Bacarisse wrote:
>> >> David Kleinecke <dkleinecke@gmail.com> writes:
>> >>
>> >> > I want to propose an enhancement:
>> >> >
>> >> > Add to C the statement type
>> >> > DO identifier SEMICOLON
>> >> > where the identifier is a label. The meaning is that
>> >> > the statement just identified is replaced by the
>> >> > statement following the label.
>> >> >
>> >> > This enhancement is potentially ambiguous in
>> >> > DO identifier SEMICOLON WHILE ... SEMICOLON
>> >> > and this situation has come up in another thread
>> >> > and triggered my post here. In order to preserve
>> >> > conforming it is necessary that the ambiguity be
>> >> > resolved as a DO-WHILE leaving
>> >> > identifier SEMICOLON
>> >> > as the repeated code. But the whole reduces to
>> >> > WHILE .... SEMICOLON
>> >>
>> >> Rather then use an ambiguous syntax, why not write it as
>> >>
>> >> label();
>> >>
>> >> The you could even add arguments and parameters and, hey presto, you get
>> >> what Knuth (a-invend others) would have wanted from the get-go.
>> >
>> > I don't follow - a label without following colon is not in
>> > the spirit of C. What do you mean?
>>
>> I mean don't write
>>
>> do something;
>>
>> but write
>>
>> something();
>>
>> since it is, in effect, a function call. Then go all the way and rather
>> than writing
>>
>> something:
>> /* code for 'something' ... */
>>
>> write
>>
>> void something()
>> {
>> /* code for 'something' ... */
>> }
>>
>> You are re-inventing local functions. Just go the whole hog and allow
>> local functions, because the function abstraction is familiar and yet
>> more flexible.
>
> Essentially you are correct and that is a solution I was
> trying to avoid. I think local functions are probably too
> powerful. I see bugs when I look at the possibility of
> parameters and returns not features.
They have issues for sure, but then so does any such proposal. If you
want to limit them so that parameters and return value are banner, you
can do that. You will still benefit from the fact that you are not
introducing a whole new structure with an ambiguous syntax.
--
Ben.
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-08 15:44 -0700
Re: An enhancement Ian Collins <ian-news@hotmail.com> - 2018-10-09 11:48 +1300
Re: An enhancement Spiros Bousbouras <spibou@gmail.com> - 2018-10-08 23:16 +0000
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-09 00:30 +0100
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-08 17:24 -0700
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-09 02:12 +0100
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-08 22:42 -0700
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-09 14:41 +0100
Re: An enhancement David Brown <david.brown@hesbynett.no> - 2018-10-09 11:15 +0200
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-09 16:09 +0100
GCC nested functions: deprecated? (Was: An enhancement) gazelle@shell.xmission.com (Kenny McCormack) - 2018-10-09 15:36 +0000
Re: An enhancement David Brown <david.brown@hesbynett.no> - 2018-10-09 21:01 +0200
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-09 11:43 +0100
Re: An enhancement already5chosen@yahoo.com - 2018-10-09 04:08 -0700
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-09 12:29 +0100
Re: An enhancement Spiros Bousbouras <spibou@gmail.com> - 2018-10-08 23:37 +0000
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-08 17:22 -0700
Re: An enhancement Ian Collins <ian-news@hotmail.com> - 2018-10-09 13:30 +1300
Re: An enhancement Spiros Bousbouras <spibou@gmail.com> - 2018-10-09 05:23 +0000
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-08 22:50 -0700
Re: An enhancement Richard Damon <Richard@Damon-Family.org> - 2018-10-09 08:28 -0400
Re: An enhancement Wouter Verhelst <w@uter.be> - 2018-10-09 14:05 +0200
C is often used as an "implementation language" for other languages. (Was: An enhancement) gazelle@shell.xmission.com (Kenny McCormack) - 2018-10-09 13:13 +0000
Re: C is often used as an "implementation language" for other languages. (Was: An enhancement) David Brown <david.brown@hesbynett.no> - 2018-10-09 16:51 +0200
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-09 14:17 +0100
Re: An enhancement Thiago Adams <thiago.adams@gmail.com> - 2018-10-09 05:20 -0700
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-09 11:33 -0700
Re: An enhancement Thiago Adams <thiago.adams@gmail.com> - 2018-10-09 13:41 -0700
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-09 12:35 +0100
Re: An enhancement Wouter Verhelst <w@uter.be> - 2018-10-09 14:04 +0200
Re: An enhancement Spiros Bousbouras <spibou@gmail.com> - 2018-10-09 12:29 +0000
Re: An enhancement Wouter Verhelst <w@uter.be> - 2018-10-09 19:50 +0200
Re: An enhancement queequeg@trust.no1 (Queequeg) - 2018-10-15 09:19 +0000
Re: An enhancement already5chosen@yahoo.com - 2018-10-15 03:07 -0700
Re: An enhancement Ian Collins <ian-news@hotmail.com> - 2018-10-15 23:18 +1300
Re: An enhancement already5chosen@yahoo.com - 2018-10-15 03:39 -0700
Re: An enhancement David Brown <david.brown@hesbynett.no> - 2018-10-15 13:03 +0200
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-15 12:15 +0100
Re: An enhancement Thiago Adams <thiago.adams@gmail.com> - 2018-10-15 05:20 -0700
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-15 15:39 +0100
Re: An enhancement David Brown <david.brown@hesbynett.no> - 2018-10-15 14:36 +0200
Re: An enhancement Thiago Adams <thiago.adams@gmail.com> - 2018-10-15 05:59 -0700
Re: An enhancement David Brown <david.brown@hesbynett.no> - 2018-10-15 15:08 +0200
Re: An enhancement Thiago Adams <thiago.adams@gmail.com> - 2018-10-15 07:25 -0700
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-15 15:44 +0100
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-15 19:02 -0700
Re: An enhancement Jorgen Grahn <grahn+nntp@snipabacken.se> - 2018-10-16 05:55 +0000
Re: An enhancement jameskuyper@alumni.caltech.edu - 2018-10-16 05:37 -0700
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-16 15:11 +0100
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-16 13:33 -0700
Re: An enhancement David Kleinecke <dkleinecke@gmail.com> - 2018-10-16 21:27 -0700
Re: An enhancement Ben Bacarisse <ben.usenet@bsb.me.uk> - 2018-10-16 14:57 +0100
Re: An enhancement scott@slp53.sl.home (Scott Lurndal) - 2018-10-16 14:24 +0000
Re: An enhancement mark.bluemel@gmail.com - 2018-10-16 07:28 -0700
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-16 15:25 +0100
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-15 11:44 +0100
Re: An enhancement David Brown <david.brown@hesbynett.no> - 2018-10-15 13:08 +0200
Re: An enhancement Bart <bc@freeuk.com> - 2018-10-15 11:22 +0100
Re: An enhancement David Brown <david.brown@hesbynett.no> - 2018-10-15 13:01 +0200
Re: An enhancement Nick Bowler <nbowler@draconx.ca> - 2018-10-15 14:43 +0000
csiph-web