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: (*) -> 1 Date: Tue, 17 Jan 2023 19:04:02 +0300 Message-ID: References: <87r0vuidjc.fsf@eder.anydns.info> <87k01lica7.fsf@eder.anydns.info> 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="9199"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/2.2.9+54 (af2080d) (2022-11-21) Cc: help-gnu-emacs@gnu.org To: Andreas Eder Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jan 17 17:31:18 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 1pHorl-0002AS-Re for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 17 Jan 2023 17:31:17 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pHor5-00059l-6q; Tue, 17 Jan 2023 11:30:35 -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 1pHor3-00059O-Ke for help-gnu-emacs@gnu.org; Tue, 17 Jan 2023 11:30:33 -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 1pHor1-0006Id-LN for help-gnu-emacs@gnu.org; Tue, 17 Jan 2023 11:30:33 -0500 Original-Received: from localhost ([::ffff:102.85.233.9]) (AUTH: PLAIN admin, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 0000000000056164.0000000063C6CD07.000017E3; Tue, 17 Jan 2023 09:29:59 -0700 Mail-Followup-To: Andreas Eder , help-gnu-emacs@gnu.org Content-Disposition: inline In-Reply-To: <87k01lica7.fsf@eder.anydns.info> 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:142317 Archived-At: * Andreas Eder [2023-01-17 15:20]: > > For now vague purpose is only to satisfy some other functions which > > process lists, like `reduce' or `apply', I am searching for > > confirmation if that was the sole purpose. > > The purpose is to be consistent in a mathematical sense. > There empty products are 1 and empty sums are 0. That is the only to > sensibly define it and to fulfill the associative property of the > operations. There are different contexts: - mathematical sense whereby "+" always require addends, without it, there is nothing to add. A number like zero is alright, but it must be there. - in lisp no addend is needed to yield (+) ➜ 0 - there is convention of identity elements, fine, but I do not see relation to above, neither why is one convention nullified in favor of the other convention Then we have: - mathematical sense whereby "*" always require 2 factos, without it, there is nothing to multiply. That is also convention. - in lisp no factor is needed to yield (*) ➜ 1 - because some other convention is followed nullyfing the previously explained one. Still I have not find clear relation why is it so. It is definitely not in every Lisp that way. PicoLisp does not think so: $ pil : (+) -> NIL : (*) -> NIL and it handles properly function `apply' without having (+) ➜ 0: ---------------------------------------------------------------- : (apply '+ '(1 2 3 4)) -> 10 (apply '* '(1 2 3 4)) -> 24 Emacs Lisp: (-) ➜ 0 but Guile: -) ice-9/boot-9.scm:1685:16: In procedure raise-exception: Wrong number of arguments to - So there are differences and the question is still open why is Lisp using those identity elements. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/