[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [External] : Re: Making a function than can only be used interactive
From: |
carlmarcos |
Subject: |
RE: [External] : Re: Making a function than can only be used interactively |
Date: |
Fri, 8 Jul 2022 23:09:57 +0200 (CEST) |
Jul 8, 2022, 20:29 by drew.adams@oracle.com:
>> It looks as if the easiest understanding of mandatory versus optional
>> function arguments occurs when using a function interactively.
>>
>> For the interactive case, it is quite complicated, depending on whether
>> the function uses code characters or a list.
>>
>> My proposition would be to include the corresponding explanation on
>> using in either the "Emacs Lisp Reference Manual" or the "Introduction to
>> Programming in Emacs Lisp".
>>
>
> Dunno whether it's a coincidence (I'm guessing no),
> but in the past couple of weeks there've been a
> boatload of similar questions on emacs.SE. Here
> are some of them:
>
I saw them and got the same kind of problem of how to write interactive
function.
Quite complicated thing.
> What is a raw prefix argument?
>
> https://emacs.stackexchange.com/q/13886
>
> Numeric prefix argument for use with interactive command
>
> https://emacs.stackexchange.com/q/72365
>
> Changing of function arguments
>
> https://emacs.stackexchange.com/q/72393
>
> Using current prefix argument value
>
> https://emacs.stackexchange.com/q/72425
>
> Function arguments and interactive
>
> https://emacs.stackexchange.com/q/72428
>
> Getting prefix as argument
>
> https://emacs.stackexchange.com/q/72454
> _____
>
> (I voted to close some of them as duplicates.)
>
> Anyway, (I think) I see confusion there similar to
> what (I think) I'm seeing here now.
>
> FWIW, here are some comments I wrote to the last of
> those questions. That doesn't seem to have done
> much good. But maybe they'll help here.
> ____
>
> 1. There's no connection between an argument being
> optional and it being provided as a prefix
> argument - none.
>
> 2. The only implication of an arg being mandatory or
> optional is for calling the function. If it's
> mandatory then omitting it raises an error;
> otherwise, no error. That's all.
>
> 3. Using a prefix arg does not necessarily pass an
> argument to the function.
>
> A prefix arg is not necessarily an arg to the
> function, and vice versa.
>
> A prefix arg need not be optional.
>
> And you can use C-u with M-x.
>
> I suggest you read the Emacs manual about prefix
> args:
>
>
> https://www.gnu.org/software/emacs/manual/html_node/elisp/Prefix-Command-Arguments.html
>
>
> Start by `C-h k C-u'.
>
> A prefix arg is used (can be used) by the
> following command. It is not necessarily
> associated with any argument to that function.
> You can think of it as a global variable, if you
> like - the function has access to it, but it
> need not be one of the function's arguments.
> ____
>
> Back to this mail thread...
>
> Instead of looking for some general guideline for
> when to use a prefix arg, or when to make this or
> that argument optional, my advice is to just learn
> what each thingie is/_does_.
>
> Learn how a prefix arg behaves (raw and numeric).
> Learn how an optional arg behaves. Learn some of
> the predefined chars for a string arg to
> `interactive'. Learn how to give a list arg to
> `interactive'.
>
> Play with those things. Once you know what each
> does you'll know what you can do with them. And
> you'll know when you might want to use this or
> that thingie. Only you know what you want, but
> you need to know what the tools in your toolbox
> look like and do.
>
> This whole discussion feels like a quest for
> advice about when to use the number one or zero -
> or a negative number or a positive number or ...
> There is no single "when". There's just knowing
> the properties/behaviors of things.
> ____
>
> tl;dr (too late, I know):
>
> Don't ask when to use X. Just get to know X.
> When and how and why to use it will come to you
> when you know it.
>
> (Just one opinion.)
>
- Re: Making a function than can only be used interactively, (continued)
- Re: Making a function than can only be used interactively, Emanuel Berg, 2022/07/08
- Re: Making a function than can only be used interactively, Yuri Khan, 2022/07/08
- Re: Making a function than can only be used interactively, carlmarcos, 2022/07/08
- Re: Making a function than can only be used interactively, Emanuel Berg, 2022/07/08
- Re: Making a function than can only be used interactively, Emanuel Berg, 2022/07/10
- Re: Making a function than can only be used interactively, carlmarcos, 2022/07/08
- Re: Making a function than can only be used interactively, Christopher Dimech, 2022/07/08
- Message not available
- Re: Making a function than can only be used interactively, carlmarcos, 2022/07/08
- Re: Making a function than can only be used interactively, Christopher Dimech, 2022/07/08
- RE: [External] : Re: Making a function than can only be used interactively, Drew Adams, 2022/07/08
- RE: [External] : Re: Making a function than can only be used interactively,
carlmarcos <=
- RE: [External] : Re: Making a function than can only be used interactively, Drew Adams, 2022/07/08
- RE: [External] : Re: Making a function than can only be used interactively, carlmarcos, 2022/07/08
- RE: [External] : Re: Making a function than can only be used interactively, Drew Adams, 2022/07/09
- Re: [External] : Re: Making a function than can only be used interactively, Emanuel Berg, 2022/07/08
- Re: [External] : Re: Making a function than can only be used interactively, Emanuel Berg, 2022/07/08
- RE: [External] : Re: Making a function than can only be used interactively, Drew Adams, 2022/07/04
- no difference between interactive and "from Lisp" (was: Re: Making a function than can only be used interactively), Emanuel Berg, 2022/07/05
- Re: no difference between interactive and "from Lisp", Stefan Monnier, 2022/07/05
- Re: no difference between interactive and "from Lisp", Emanuel Berg, 2022/07/05
- Re: Making a function than can only be used interactively, Po Lu, 2022/07/03