From: Heime via Users list for the GNU Emacs text editor <help-gnu-emacs@gnu.org>
To: Stephen Berman <stephen.berman@gmx.net>
Cc: Heime via Users list for the GNU Emacs text editor
<help-gnu-emacs@gnu.org>
Subject: Re: Making alist that executes multiple commands
Date: Mon, 25 Nov 2024 22:50:03 +0000 [thread overview]
Message-ID: <NrOWi6Ocd808wbtXv5DBGBs1bjaiA0WUI6ZduNfEe-YMzN-VEP7lr6Arm6zh_qoXBIcldX-kI5BsZhNPSW1_h7zVxi5gh94SZuppHo_AfYQ=@protonmail.com> (raw)
In-Reply-To: <8734jf6k4s.fsf@rub.de>
Sent with Proton Mail secure email.
On Tuesday, November 26th, 2024 at 10:09 AM, Stephen Berman <stephen.berman@gmx.net> wrote:
> On Mon, 25 Nov 2024 21:59:53 +0000 Heime heimeborgia@protonmail.com wrote:
>
> > About your comment
> >
> > > That seems fine if the functions take no arguments, though probably not
> > > as flexible as looping over a list.
> >
> > You provided the examples
> >
> > (funcall 'alkotr-ar ar)
> > (funcall 'alkotr-ar af)
> >
> > But I did not understand how to inceorporate this idea. With
> > my lambda function, I can also pass arguments to my commands.
> >
> > I did not understand the implication of the following in my case.
> >
> > (dolist (f '(+ - list))
> > (dolist (a '(1 2 3))
> > (funcall f a)))
> >
> > Thusly, I do not understand what "allow arguments to be freely combined"
> > actually means practically.
>
>
> It produces all combinations of function calls comprised of one of the
> functions f and one of the arguments a; I did not mean to imply anything
> else. If it doesn't help with your use case, then of course don't use
> it.
I worked through it a little bit
(dolist (f '(+ - list))
(dolist (a '(1 2 3))
(funcall f a)))
Which fails for + and -, Elisp requires at least two arguments
to perform arithmetic operations. Since only a single argument
is provided, this will result in an error.
So I have done
(dolist (f '(+ - list))
(dolist (a '(1 2 3))
(dolist (b '(4 5 6)) ;; Adding another argument
(message "Result of %s: %s" f (funcall f a b)))))
Producing
Result of +: 5
Result of +: 6
Result of +: 7
Result of +: 6
Result of +: 7
Result of +: 8
Result of +: 7
Result of +: 8
Result of +: 9
Result of -: -3
Result of -: -4
Result of -: -5
Result of -: -2
Result of -: -3
Result of -: -4
Result of -: -1
Result of -: -2
Result of -: -3
Result of list: (1 4)
Result of list: (1 5)
Result of list: (1 6)
Result of list: (2 4)
Result of list: (2 5)
Result of list: (2 6)
Result of list: (3 4)
Result of list: (3 5)
Result of list: (3 6)
It is a good exercise but not the kind of mixing I was thinking about.
I just have a set of commands that I want to run according to some setting
'argm or 'go. Or do both with '(argm go). That's all. I think the lamdba
gets this done. The arguments to any of the commands in the lambda can come
from external settings as well right, global variables and can introduce
conditionals as well. Which should be what I require. Or would you know
about something else. Is there ways the implementation can break?
next prev parent reply other threads:[~2024-11-25 22:50 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-24 21:51 Making alist that executes multiple commands Heime via Users list for the GNU Emacs text editor
2024-11-24 22:56 ` Stephen Berman
2024-11-24 23:13 ` Heime via Users list for the GNU Emacs text editor
2024-11-24 23:28 ` Stephen Berman
2024-11-24 23:39 ` Heime via Users list for the GNU Emacs text editor
2024-11-25 1:05 ` Heime via Users list for the GNU Emacs text editor
2024-11-25 9:40 ` Stephen Berman
2024-11-25 13:10 ` Heime via Users list for the GNU Emacs text editor
2024-11-25 14:58 ` Stephen Berman
2024-11-25 16:36 ` Heime via Users list for the GNU Emacs text editor
2024-11-25 17:59 ` Heime via Users list for the GNU Emacs text editor
2024-11-25 20:31 ` Stephen Berman
2024-11-25 20:45 ` Heime via Users list for the GNU Emacs text editor
2024-11-25 21:05 ` Stephen Berman
2024-11-25 21:18 ` Heime via Users list for the GNU Emacs text editor
2024-11-25 21:27 ` Stephen Berman
2024-11-25 21:37 ` Heime via Users list for the GNU Emacs text editor
2024-11-25 21:45 ` Stephen Berman
2024-11-25 21:59 ` Heime via Users list for the GNU Emacs text editor
2024-11-25 22:09 ` Stephen Berman
2024-11-25 22:50 ` Heime via Users list for the GNU Emacs text editor [this message]
2024-11-25 23:11 ` Stephen Berman
2024-11-26 8:46 ` Heime via Users list for the GNU Emacs text editor
2024-11-25 3:00 ` Stefan Monnier via Users list for the GNU Emacs text editor
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='NrOWi6Ocd808wbtXv5DBGBs1bjaiA0WUI6ZduNfEe-YMzN-VEP7lr6Arm6zh_qoXBIcldX-kI5BsZhNPSW1_h7zVxi5gh94SZuppHo_AfYQ=@protonmail.com' \
--to=help-gnu-emacs@gnu.org \
--cc=heimeborgia@protonmail.com \
--cc=stephen.berman@gmx.net \
/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).