Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #136775
| Subject | Re: An enhancement |
|---|---|
| Newsgroups | comp.lang.c |
| References | (1 earlier) <24iu8f-0qq.ln1@gangtai.home.grep.be> <aSwXVuMIilhGorEjHpWwCxsPmhOHs@bongo-ra.co> <36312068-a8ea-41ec-9d00-0f6ab475bcfa@trust.no1> <e0499a15-3bee-4bb0-8377-1b5a4f2680f2@googlegroups.com> <g2j7shFohs9U1@mid.individual.net> |
| From | Bart <bc@freeuk.com> |
| Message-ID | <ec_wD.60403$5A2.52746@fx25.am4> (permalink) |
| Organization | virginmedia.com |
| Date | 2018-10-15 11:44 +0100 |
On 15/10/2018 11:18, Ian Collins wrote:
> On 15/10/18 23:07, already5chosen@yahoo.com wrote:
>> On Monday, October 15, 2018 at 12:19:44 PM UTC+3, Queequeg wrote:
>>> Spiros Bousbouras <spibou@gmail.com> wrote:
>>>
>>>> I think what David really wants is local functions (i.e.
>>>> functions within functions) which do not accept any parameters ,
>>>> do not return a value and a syntax which allows the compiler to
>>>> recognise that it is a local function call without having
>>>> encountered first a declaration or definition for the local
>>>> function. The specific example he gave can be written using
>>>> goto's but the more general case cannot (without very convoluted
>>>> gymnastics).
>>>
>>> I guess he should learn about lambda functions in C++11.
>>>
>>> -- https://www.youtube.com/watch?v=9lSzL1DqQn0
>>
>>
>> I don't think so.
>>
>> 1. Lambda functions are anonymous. David wants *named* nested
>> functions. Being named is critically important, because [it seems to
>> me that] important point of his proposal is an ability to call it
>> from more than one location in the outer function.
>
> You can name C++ lambdas. From a bit of my own code:
>
> auto error = [this]( std::string function )
> {
> LOG_ERROR("Open: "+function+" failed %s", strerror(errno) );
> close(fd);
> fd = kInvalidFd;
> return false;
> };
>
> int Opt = 0;
> if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, &Opt, sizeof(Opt)) != 0)
> {
> return error("setsockopt");
> }
>
> ... repeated in similar fashion for various socket operations ...
Which bit is the named lambda?
(BTW using identifiers such as 'function' in example code of what could
be an unfamiliar language is confusing. 'function' looks like it could
be a keyword.)
>> 2. Lambda functions are in-place David wants his nested functions to
>> be defined at the end of outer function because he feels that it
>> would improve readability for top-down oriented readers. It seems
>> likely that David himself is top-down character so he should know
>> their needs better than decisively bottom-up people like myself.
>
> Maybe, but I can't help feeling that's a bit like declaring a variable
> after it's used!
(What's wrong with that? Example from an actual language:
proc start=
a:=17
b:=4
c:=a/b
println c
real a,b,c
end
Output: 4.25
No different from calling a function which is defined later (C doesn't
allow this without a prior declaration**, but I'm sure many languages
do), or using goto with a label defined later (C allows this one).
Think of it as a glossary which usually goes at the end of a book.)
(** Despite this, often this can work, but with warnings, or sometimes
with none. It's just that kind of language - yeah, but, maybe,
sometimes, it depends .... Expecting yes or no is apparently too much to
expect.)
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