unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
From: Philip Kaludercic <philipk@posteo.net>
To: carlmarcos--- via Users list for the GNU Emacs text editor
	<help-gnu-emacs@gnu.org>
Cc: carlmarcos@tutanota.com
Subject: Re: Should prefix variable be used in function argument list
Date: Fri, 08 Jul 2022 17:40:33 +0000	[thread overview]
Message-ID: <87let3mrji.fsf@posteo.net> (raw)
In-Reply-To: <N6Tn2zv--3-2@tutanota.com> (carlmarcos's message of "Fri, 8 Jul 2022 19:12:17 +0200 (CEST)")

carlmarcos--- via Users list for the GNU Emacs text editor
<help-gnu-emacs@gnu.org> writes:

> When one wants to use the prefix argument when calling an interactive
> function, should one include a prefix variable in the function
> argument list? 

No, I don't think there is any general rule here.  Some functions are
meant for interactive use only so they don't pass the prefix argument
through the argument list, while functions that are both meant to be
used interactively and by other functions do so to expose the
functionality to both callers. 

> Furthermore, should the prefix argument be defined as optional?  How
> would one call the function non-interactively for such function?  Is
> it always necessary to have the prefix argument as the first argument
> in the function argument list?

Again, most of this depends on the individual case and often is a matter
of individual taste.  You get to design the interactive specification
yourself, so you get to decide what happens.

An option you didn't mention but what I occasionally make use of is to
only use `current-prefix-arg' in an interactive specification, instead
of the body.  E.g. think of something like this:

--8<---------------cut here---------------start------------->8---
(defun foo (option)
  (interactive
   (list (if current-prefix-arg
	     (read-string "Option: ")
	   "default")))
  (do-something-with option))
--8<---------------cut here---------------end--------------->8---



  reply	other threads:[~2022-07-08 17:40 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-08 17:12 Should prefix variable be used in function argument list carlmarcos--- via Users list for the GNU Emacs text editor
2022-07-08 17:40 ` Philip Kaludercic [this message]
2022-07-08 17:53   ` Emanuel Berg
2022-07-08 18:11     ` Emanuel Berg
2022-07-09  8:59       ` Philip Kaludercic
2022-07-10  4:14         ` Emanuel Berg
2022-07-08 17:41 ` Emanuel Berg
2022-07-08 18:09   ` Emanuel Berg
2022-07-08 21:08   ` carlmarcos--- via Users list for the GNU Emacs text editor
2022-07-09  4:57     ` tomas

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=87let3mrji.fsf@posteo.net \
    --to=philipk@posteo.net \
    --cc=carlmarcos@tutanota.com \
    --cc=help-gnu-emacs@gnu.org \
    /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).