Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #91021

Re: High level C

From Tim Rentsch <txr@alumni.caltech.edu>
Newsgroups comp.lang.c
Subject Re: High level C
Date 2016-07-25 09:21 -0700
Organization A noiseless patient Spider
Message-ID <kfn8twpsn76.fsf@x-alumni2.alumni.caltech.edu> (permalink)
References <nmbl0s$t8n$1@dont-email.me> <87mvlimt9i.fsf@bsb.me.uk> <5793c3cb.1636046@news.xs4all.nl>

Show all headers | View raw


raltbos@xs4all.nl (Richard Bos) writes:

> Ben Bacarisse <ben.usenet@bsb.me.uk> wrote:
>
>> jacobnavia <jacob@jacob.remcomp.fr> writes:
>> <snip>
>>> .... Object oriented programming is
>>> no longer "en vogue" and the fad went for templates, now lambdas, and
>>> tomorrow whatever computer science students learn at the university,
>>> where those fads are fabricated.
>>
>> Lambdas date from the 1930s.  There were amongst the very first concepts
>> to be implemented in a programming language (in the 1950s).  They are a
>> very long-lived fad.
>
> No, they're not.  They're a long-lived concept.  But jacob is right in
> this, that they've semi-recently started to be pushed as the Latest New
> Thing (or maybe by now the Second-Latest New Thing) which was going to
> revolutionise programming.  I never pay attention to these things so I
> can't tell you where, but I _have_ found myself going "what, lambdas
> _again_? *flip*".
> I have no problem with lambdas.  I don't see myself using them much,
> ever, but lambdas are fine where they're the appropriate solution.
> Which, AFAICT, is algorithm research, BICBW - it's not day-to-day
> programming for me, that's certain.  What I _do_ have a problem with,
> though, is programming fads, and lambdas have become one of them.

I think there was a time when I would have agreed with this
viewpoint.  Now I have a different perspective, and would like to
present that.

First, a note on terminology.  The key underlying mechanism is
closures.  Closures can be implemented by way of named, nested
functions (which gcc does as an extension), or by anonymous
"in-place" function bodies (which often are called lambdas).
IMO anonymous closures (aka lambdas) are significantly more
convenient than just having nested function definitions, but
the difference between those is one of syntactic sugar (rather
rich sugar perhaps, but still just a syntactic convenience).
Let me use the word closure to refer to the basic underlying
mechanism, without regard to whether the nested function bodies
are named or anonymous.

Closures are significant because they enable control abstraction,
which is remarkably powerful.  It is difficult to realize the
full potential of closures in a language like C, because it does
not provide automatic storage reclamation, and because C's type
system isn't rich enough to provide parametric polymorphism.
Despite that, closures offer a substantial benefit even when
restricted by those limitations.  Readers may remember that
Pascal allowed nested function definitions, which provide (IIANM)
the same limited closure capabilities that gcc nested functions
do.

I believe closures (and lambdas) are becoming more common in
imperative/procedural languages, such as C, due to a growing
awareness in the hinterlands of the value they bring to writing
real programs.  Closures/lambdas aren't important because they
are becoming popular;  they are becoming popular because they
are important.

I guess I should end with an offer to respond to a skeptical
followup regarding the views just presented.  If someone has
a question about closures/lambdas, and topical in CLC, please
feel free to followup and ask it.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-15 23:36 +0200
  Re: High level C supercat@casperkitty.com - 2016-07-15 15:17 -0700
    Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-16 09:09 +0200
      Re: High level C supercat@casperkitty.com - 2016-07-17 20:02 -0700
  Re: High level C Keith Thompson <kst-u@mib.org> - 2016-07-15 15:17 -0700
    Re: High level C fir <profesor.fir@gmail.com> - 2016-07-31 23:55 -0700
  Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-15 23:27 +0100
    Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-16 09:13 +0200
      Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-16 02:07 -0700
        Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-16 11:07 +0100
          Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-16 03:29 -0700
            Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-16 13:40 +0100
            Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-17 11:57 +0530
          Re: High level C BartC <bc@freeuk.com> - 2016-07-16 11:30 +0100
            Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-16 03:43 -0700
              Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-16 13:53 +0100
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-16 07:49 -0700
                Re: High level C Jean-Marc Bourguet <jm@bourguet.org> - 2016-07-16 17:08 +0200
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-16 09:09 -0700
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-16 16:26 +0100
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-16 18:05 +0200
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-16 20:15 +0100
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-16 23:44 +0200
                Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-07-23 19:39 +0000
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-23 22:58 +0200
                Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-07-27 14:52 +0000
                Re: High level C Richard Heathfield <rjh@cpax.org.uk> - 2016-07-27 16:29 +0100
                Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-07-23 19:38 +0000
              Re: High level C BartC <bc@freeuk.com> - 2016-07-16 14:17 +0100
            Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-16 13:46 +0100
            Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-17 12:05 +0530
              Re: High level C BartC <bc@freeuk.com> - 2016-07-17 11:03 +0100
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-17 03:39 -0700
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-17 18:20 +0530
                Re: High level C BartC <bc@freeuk.com> - 2016-07-17 14:00 +0100
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-17 23:13 +0530
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-17 20:14 +0200
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-17 20:14 +0100
                Re: High level C BartC <bc@freeuk.com> - 2016-07-17 20:45 +0100
                Re: High level C Gareth Owen <gwowen@gmail.com> - 2016-07-17 21:00 +0100
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-18 09:48 +0530
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-18 00:55 -0700
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-18 22:25 +0530
                Re: High level C BartC <bc@freeuk.com> - 2016-07-18 11:40 +0100
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-18 05:05 -0700
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-18 22:59 +0530
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-18 22:50 +0530
                Re: High level C BartC <bc@freeuk.com> - 2016-07-18 19:07 +0100
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-19 11:53 +0530
                Re: High level C BartC <bc@freeuk.com> - 2016-07-19 11:15 +0100
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-19 14:00 +0100
                Re: High level C BartC <bc@freeuk.com> - 2016-07-19 15:01 +0100
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-19 15:26 +0100
                Re: High level C BartC <bc@freeuk.com> - 2016-07-19 15:57 +0100
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-19 17:13 +0100
                Re: High level C BartC <bc@freeuk.com> - 2016-07-19 18:14 +0100
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-19 19:20 +0100
                Re: High level C BartC <bc@freeuk.com> - 2016-07-19 19:46 +0100
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-20 02:44 +0100
                Re: High level C BartC <bc@freeuk.com> - 2016-07-20 10:59 +0100
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-20 03:07 -0700
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-21 01:44 +0100
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-21 18:58 +0530
                Re: High level C BartC <bc@freeuk.com> - 2016-07-21 17:20 +0100
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-21 20:52 +0100
                Re: High level C BartC <bc@freeuk.com> - 2016-07-21 21:14 +0100
                Re: High level C Keith Thompson <kst-u@mib.org> - 2016-07-21 13:23 -0700
                Re: High level C BartC <bc@freeuk.com> - 2016-07-21 21:50 +0100
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-22 12:52 +0200
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-22 04:03 -0700
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-22 23:56 +0530
                Re: High level C BartC <bc@freeuk.com> - 2016-07-22 20:09 +0100
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-22 23:49 +0530
                Re: High level C BartC <bc@freeuk.com> - 2016-07-22 20:37 +0100
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-19 19:16 +0200
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-19 19:17 +0100
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-19 21:07 +0200
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-20 02:36 +0100
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-19 07:27 -0700
                Re: High level C BartC <bc@freeuk.com> - 2016-07-19 16:27 +0100
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-07-19 08:43 -0700
                Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-19 19:14 +0100
                Re: High level C Jean-Marc Bourguet <jm@bourguet.org> - 2016-07-18 10:08 +0200
                Re: High level C Udyant Wig <udyant.wig@gmail.com> - 2016-07-18 23:04 +0530
      Re: High level C Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-07-16 10:18 +0100
    Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-07-23 19:26 +0000
      Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-25 09:21 -0700
        Re: High level C luser droog <luser.droog@gmail.com> - 2016-07-25 10:19 -0700
          Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-28 10:31 -0700
            Re: High level C luser droog <luser.droog@gmail.com> - 2016-07-28 21:13 -0700
              Re: High level C supercat@casperkitty.com - 2016-07-29 09:05 -0700
                Re: High level C Keith Thompson <kst-u@mib.org> - 2016-07-29 09:30 -0700
                Re: High level C supercat@casperkitty.com - 2016-07-29 10:08 -0700
                Re: High level C Ike Naar <ike@iceland.freeshell.org> - 2016-07-29 17:57 +0000
                Re: High level C supercat@casperkitty.com - 2016-07-29 11:50 -0700
              Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-31 07:16 -0700
                Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-07-31 14:34 +0000
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-31 14:55 -0700
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-01 03:10 -0700
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-01 07:40 -0700
                Re: High level C Gareth Owen <gwowen@gmail.com> - 2016-08-01 19:43 +0100
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-01 10:21 -0500
                Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-08-03 13:14 +0000
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-05 08:40 -0700
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-05 09:28 -0700
                Re: High level C fir <profesor.fir@gmail.com> - 2016-08-05 09:55 -0700
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-05 15:51 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-05 18:43 +0200
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-05 15:43 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-06 00:52 +0200
                Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-08-10 12:42 +0000
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-11 12:24 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-07-31 16:42 +0200
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-31 12:59 -0700
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-07-31 17:12 -0500
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-31 17:12 -0700
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-01 00:54 -0500
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-01 08:08 -0700
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-01 12:58 -0500
                Re: High level C Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-08-01 12:25 -0700
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-03 08:44 -0700
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-03 11:56 -0500
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-03 19:29 +0200
                Re: High level C "James R. Kuyper" <jameskuyper@verizon.net> - 2016-08-03 13:45 -0400
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-03 13:23 -0500
                Re: High level C BartC <bc@freeuk.com> - 2016-08-03 19:27 +0100
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-03 21:04 +0200
                Re: High level C Gareth Owen <gwowen@gmail.com> - 2016-08-03 20:08 +0100
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-03 16:09 -0500
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-03 16:06 -0500
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-08-03 23:36 +0200
                Re: High level C Les Cargill <lcargill99@comcast.com> - 2016-08-03 19:44 -0500
                Re: High level C supercat@casperkitty.com - 2016-08-03 15:03 -0700
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-04 19:17 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-05 05:48 +0200
                Re: High level C Keith Thompson <kst-u@mib.org> - 2016-08-05 08:24 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-05 18:30 +0200
                Re: High level C Keith Thompson <kst-u@mib.org> - 2016-08-05 10:34 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-05 20:50 +0200
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-05 15:39 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-06 00:50 +0200
                Re: High level C Keith Thompson <kst-u@mib.org> - 2016-08-05 17:08 -0700
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-06 02:23 +0200
                Re: High level C raltbos@xs4all.nl (Richard Bos) - 2016-08-06 10:03 +0000
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-06 12:13 +0200
                Re: High level C "James R. Kuyper" <jameskuyper@verizon.net> - 2016-08-06 11:10 -0400
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-06 17:40 +0200
                Re: High level C "James R. Kuyper" <jameskuyper@verizon.net> - 2016-08-06 11:56 -0400
                Re: High level C Melzzzzz <mel@zzzzz.com> - 2016-08-06 17:51 +0200
                Re: High level C supercat@casperkitty.com - 2016-08-08 09:12 -0700
                Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-31 22:07 +0200
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-07-31 15:05 -0700
                Re: High level C Ian Collins <ian-news@hotmail.com> - 2016-08-03 11:22 +1200
                Re: High level C Tim Rentsch <txr@alumni.caltech.edu> - 2016-08-03 08:50 -0700
  Re: High level C BartC <bc@freeuk.com> - 2016-07-16 01:12 +0100
    Re: High level C Jerry Stuckle <jstucklex@attglobal.net> - 2016-07-15 20:16 -0400
    Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-16 09:17 +0200
  Re: High level C Siri Cruise <chine.bleu@yahoo.com> - 2016-07-16 08:20 -0700
    Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-16 17:24 +0200
      Re: High level C Siri Cruise <chine.bleu@yahoo.com> - 2016-07-16 09:24 -0700
  Re: High level C carlglassberg@gmail.com - 2016-07-17 14:15 -0700
  Re: High level C carlglassberg@gmail.com - 2016-07-17 14:22 -0700
    Re: High level C jacobnavia <jacob@jacob.remcomp.fr> - 2016-07-17 23:58 +0200
  Re: High level C fir <profesor.fir@gmail.com> - 2016-08-02 13:20 -0700

csiph-web