From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Louis Newsgroups: gmane.emacs.help Subject: Re: [External] : Re: How to make M-x TAB not work on (interactive) declaration? Date: Mon, 16 Jan 2023 21:41:18 +0300 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="27786"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/2.2.9+54 (af2080d) (2022-11-21) Cc: Yuri Khan , Rudolf =?utf-8?Q?Adamkovi=C4=8D?= , "help-gnu-emacs@gnu.org" To: Drew Adams Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jan 16 19:56:42 2023 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 1pHUew-000735-4Y for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 16 Jan 2023 19:56:42 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pHUeT-0003cS-0X; Mon, 16 Jan 2023 13:56:13 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pHUeR-0003by-LN for help-gnu-emacs@gnu.org; Mon, 16 Jan 2023 13:56:11 -0500 Original-Received: from stw1.rcdrun.com ([217.170.207.13]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pHUeP-00047O-U6 for help-gnu-emacs@gnu.org; Mon, 16 Jan 2023 13:56:11 -0500 Original-Received: from localhost ([::ffff:197.239.8.177]) (AUTH: PLAIN admin, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 0000000000056100.0000000063C59DCB.000028B1; Mon, 16 Jan 2023 11:56:11 -0700 Mail-Followup-To: Drew Adams , Yuri Khan , Rudolf =?utf-8?Q?Adamkovi=C4=8D?= , "help-gnu-emacs@gnu.org" Content-Disposition: inline In-Reply-To: Received-SPF: pass client-ip=217.170.207.13; envelope-from=bugs@gnu.support; helo=stw1.rcdrun.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham 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-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:142282 Archived-At: * Drew Adams [2023-01-16 20:07]: > I think the replies you've gotten already might well help you > understand. Please consider rereading them. I do not dispute that group theory exists, or identity, and it is part of mathematic. I do not see relation between identity and lisp function which is supposed to give product of multiplication or sum of addition, and I can't imagine that Lisp authors did that to those functions for reasons to avoid `apply' function to fail. There are X number of mathematical stuff that is not represented in Lisp because it should not be there, a function should do one thing well. What is missing in my understanding is: - purpose of (*) ➜ 1, (-) ➜ 0 and (+) ➜ 0 as I do not understand how I would apply it else but making a funny Christmass tree in obscured programming and relation to Lisp. I have tried searching for references but can't find. (defun m (n) (let ((m)) (dotimes (b n) (setq m (cons "(*)" m))) (concat "(+" (string-join m) ")"))) (let ((first 1)) (insert "\n") (while (<= first 10) (let ((second 1)) (while (<= second 10) (insert "(*" (m first)(m second) ")\n") (setq second (1+ second))) (setq first (1+ first))))) One reference to it I find in "Common Lisp - A Gentle Introduction to Symbolic Computing": > Suppose x and y are lists. (REDUCE #’+ (APPEND x y)) should produce > the same value as the sum of (REDUCE #’+ x) and (REDUCE #’+ y). If y > is NIL, then (APPEND x y) equals x, so (REDUCE #’+ y) has to return > zero. Zero is the identity value for addition. That’s why calling + > with no arguments returns zero. Similarly, calling * with no arguments > returns one because one is the multiplicative identity. Let's compare: (let ((x '(3 3 3)) (y '(4 4 4))) (reduce #'* (append x y))) ➜ 1728 Same in Common Lisp (let ((x '(3 3 3)) (y '(4 4 4))) (+ (reduce #'+ x) (reduce #'+ y))) ➜ 21 Same in Common Lisp Am I wrong here making sum how it said I should make? (let ((x '(3 3 3)) (y nil)) (append x y)) ➜ (3 3 3) I cannot see that (append x y) equals x -- I cannot follow the example (let ((x '(3 3 3)) (y nil)) (reduce #'+ y)) ➜ 0 This is correct as in example Again I read "That's why calling + with no arguments returns zero" and do they mean that "why" is with reason to make function `reduce' work similarly like to make `apply' work? -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/