Le 25/07/2016 00:55, Steve Litt a écrit :
On Sun, 24 Jul 2016 23:30:47 +0200
Didier Kryn <k...@in2p3.fr> wrote:

Le 24/07/2016 22:37, Jaromil a écrit :
nowadays the closures paradigm (basically fifo pipes of pointers to
stateless functions) is used much more than all that mutex and
semaphore old stuff. i.e. golang adopted closures since the
beginning with great success.

ciao
      Don't know what a closure is, although I heard of it long ago on
this list. According to Wikipedia, it is "a record containing a
function and its environment".
Hi Didier,

I've never encountered closures as described by Jaromil, but they're a
pretty handy thing easily done in many languages, with Lua leading the
list. Here's something that might help explain a little bit:

http://troubleshooters.com/codecorn/lua/luaclosures.htm

    Thanks, Steve. It confirms my further reading of Wikipedia's article.

In languages like C, C++ or Ada, it is impossible to use a function to create a closure, because they store variables local to the subprogram (then creator function) in the stack. It is well known that Java allocates everything from the heap, making this easier.

    However there are tricks to do it in really many languages:
https://rosettacode.org/wiki/Closures/Value_capture

In Ada this resorts to instantiate a special type of object for every closure and then initialize it by a special kind of invocation. This special object, behind the scene, contains a mutex :-(, but this one could cause contention only when initializing the closure, which has no reason to happen. Nevertheless it looks contorted.

    Didier

_______________________________________________
Dng mailing list
Dng@lists.dyne.org
https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/dng

Reply via email to