From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg Newsgroups: gmane.emacs.help Subject: Re: [External] : Re: Making a function than can only be used interactively Date: Sat, 09 Jul 2022 01:19:08 +0200 Message-ID: <871quvqjkj.fsf@dataswamp.org> References: <87pmiljgah.fsf@gnu.org> <875yk8ehp8.fsf@dataswamp.org> <87bku0ce1f.fsf@dataswamp.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="28706"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:aCBXqGp4k3S3PcHK6I9eZxEAEIE= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sat Jul 09 01:21:12 2022 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1o9xHb-0007Ia-Cw for geh-help-gnu-emacs@m.gmane-mx.org; Sat, 09 Jul 2022 01:21:11 +0200 Original-Received: from localhost ([::1]:58204 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1o9xHZ-00008h-Hn for geh-help-gnu-emacs@m.gmane-mx.org; Fri, 08 Jul 2022 19:21:10 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47952) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9xG0-00007t-KT for help-gnu-emacs@gnu.org; Fri, 08 Jul 2022 19:19:32 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:58398) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1o9xFv-0001kp-G3 for help-gnu-emacs@gnu.org; Fri, 08 Jul 2022 19:19:31 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1o9xFj-0004s1-Uj for help-gnu-emacs@gnu.org; Sat, 09 Jul 2022 01:19:15 +0200 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:138393 Archived-At: Drew Adams wrote: > but in the past couple of weeks there've been a > boatload of similar questions on emacs.SE The Emacs world is not that big ... > 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 Good points, and the others, but that's not all, that's easy - to do something sensible with it can be tricky. Don't know how one succeeds at that tho, maybe one just do something that works, use it, and refine it, including the interface, little by little when one get better intuition how it works, what can be improved and so on? After doing that one will see certain patterns that reappear and such things can then be instantly brought into new stuff that's similar, so the process gets more involved the further you go ... > A prefix arg is not necessarily an arg to the function, and > vice versa. But it's a good idea for clarity, documentation and also how do you call it from Lisp in a neat way without it if you want the same functionality? > A prefix arg need not be optional. But it's useful for defaults and the optional arguments default themselves if not set so it's an easy way to do that. > 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. 100% -- underground experts united https://dataswamp.org/~incal