From: Emanuel Berg via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org>
To: help-gnu-emacs@gnu.org
Subject: Re: Closures in Emacs and their usage scenarios.
Date: Thu, 30 Sep 2021 05:27:18 +0200 [thread overview]
Message-ID: <87k0iyoi95.fsf@zoho.eu> (raw)
In-Reply-To: CAGP6POLWJhch07tbas_DM_Sa3CzeG8D-5KGW1e=aFyU+xbAgkw@mail.gmail.com
Hongyi Zhao wrote:
> I asked this question based on the following related
> concepts that I am currently considering: iterator,
> generator, recursor and closure (a decorator in Python is
> essentially a closure). According to the theory discussed by
> John McCarthy, it seems that the recursor or recursive
> Functions have a more important position in these concepts.
>
> http://www-formal.stanford.edu/jmc/recursive/recursive.html
Recursion is a darling of CS instructors because the code
often looks so neat (more mathematical/semantic) and it opens
up the doors to speak about such neat things as the base and
recursive case (maybe because it resembles the inductive
proofs of math, again)
OTOH iteration (i.e., loops) are considered a building block
of "imperative" programming, e.g. C, which in CS culture don't
rank as high as so-called functional programming
(Lisp/Erlang/Haskell etc), where, instead of side-effect
plagued iteration you have such things as tail recursion,
recursion over trees in both directions, and more ...
However in practice iteration is almost always better as it
don't place function after function on top of each other on
the stack, also iteration doesn't involve function call
overhead proportional to the scope of the problem solved, as
does recursion.
With Elisp in particular, which is considered slow in general
and even more so with respect to funcall overhead (this is
what I've heard from the Gnus people anyway, maybe to some
extent it is an excuse not ever to refactor Gnus insanely long
and complicated defuns, still I believe them) - so with Elisp
in particular don't do recursion, do iteration.
If you don't like the Elisp CL for loop (cl-loop for ... ) -
why BTW? I love it, and it has features the C for don't have,
for example multiple iterators - but if you don't like it (too
imperative/too explicit side effects or whatever reason) there
are other loops that looks as neat or neater than does
recursion ...
--
underground experts united
https://dataswamp.org/~incal
next prev parent reply other threads:[~2021-09-30 3:27 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-27 9:40 Closures in Emacs and their usage scenarios Hongyi Zhao
2021-09-28 2:50 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-09-28 2:54 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-09-28 6:46 ` Hongyi Zhao
2021-09-28 8:30 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-09-28 8:54 ` Hongyi Zhao
2021-09-28 10:39 ` tomas
2021-09-28 11:29 ` Hongyi Zhao
2021-09-28 13:31 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-09-28 13:50 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-09-28 13:57 ` tomas
2021-09-28 14:31 ` Hongyi Zhao
2021-09-28 15:25 ` tomas
2021-09-29 3:59 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-09-29 6:43 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-09-28 2:55 ` Stefan Monnier via Users list for the GNU Emacs text editor
2021-09-28 4:11 ` [External] : " Drew Adams
2021-09-28 4:17 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-09-28 11:53 ` Arthur Miller
2021-09-28 14:50 ` Hongyi Zhao
2021-09-29 4:04 ` Stefan Monnier via Users list for the GNU Emacs text editor
2021-09-29 6:10 ` Tomas Hlavaty
2021-09-29 12:28 ` Stefan Monnier
2021-09-29 22:11 ` Tomas Hlavaty
2021-09-29 22:25 ` [External] : " Drew Adams
2021-09-30 10:58 ` Tomas Hlavaty
2021-09-30 14:55 ` Drew Adams
2021-09-30 15:54 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-01 4:35 ` Hongyi Zhao
2021-09-29 23:06 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-09-30 0:59 ` Hongyi Zhao
2021-09-30 3:27 ` Emanuel Berg via Users list for the GNU Emacs text editor [this message]
2021-09-30 11:58 ` Tomas Hlavaty
2021-09-30 13:27 ` Hongyi Zhao
2021-09-30 15:29 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-01 14:46 ` Stefan Monnier via Users list for the GNU Emacs text editor
2021-09-29 23:26 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-01 3:37 ` Arthur Miller
2021-10-08 10:53 ` Hongyi Zhao
2021-10-10 14:16 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-10 18:25 ` Marcin Borkowski
2021-10-11 23:16 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-12 5:29 ` Marcin Borkowski
2021-10-12 5:32 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-03 9:07 ` Lisp books (was: Re: Closures in Emacs and their usage scenarios.) Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-03 14:41 ` Lisp books Stefan Monnier via Users list for the GNU Emacs text editor
2021-10-05 10:08 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-05 12:57 ` Stefan Monnier via Users list for the GNU Emacs text editor
2021-10-05 14:18 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-06 1:43 ` Stefan Monnier via Users list for the GNU Emacs text editor
2021-10-06 3:20 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-06 6:44 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-06 7:06 ` tomas
2021-10-06 10:17 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-06 12:37 ` Stefan Monnier via Users list for the GNU Emacs text editor
2021-10-06 12:54 ` tomas
2021-10-06 20:24 ` [OFFPTOPIC] ACM digital library (was: Lisp books) Stefan Monnier via Users list for the GNU Emacs text editor
2021-10-06 20:56 ` tomas
2021-10-07 6:29 ` Yuri Khan
2021-10-07 9:10 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-07 12:42 ` [OFFPTOPIC] ACM digital library Stefan Monnier
2021-10-12 5:44 ` [OFFPTOPIC] ACM digital library (was: Lisp books) Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-12 18:11 ` Lisp books Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-03 15:39 ` [External] : Lisp books (was: Re: Closures in Emacs and their usage scenarios.) Drew Adams
2021-10-05 10:10 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-10-05 14:32 ` Drew Adams
2021-10-05 14:51 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-09-28 7:11 ` Closures in Emacs and their usage scenarios Eduardo Ochs
2021-09-28 7:23 ` Emanuel Berg via Users list for the GNU Emacs text editor
2021-09-28 7:33 ` Eduardo Ochs
2021-09-28 8:13 ` Hongyi Zhao
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k0iyoi95.fsf@zoho.eu \
--to=help-gnu-emacs@gnu.org \
--cc=moasenwood@zoho.eu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).