From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Nick Dokos Newsgroups: gmane.emacs.help Subject: Re: (*) -> 1 Date: Tue, 17 Jan 2023 14:11:50 -0500 Message-ID: <873589q8ll.fsf@alphaville.usersys.redhat.com> References: <87r0vuidjc.fsf@eder.anydns.info> <87y1q1kvdm.fsf@web.de> 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="18536"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:+LfV9YpgjAX+Ep8QfurfIynTPKo= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Tue Jan 17 20:12:36 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 1pHrNr-0004aO-CR for geh-help-gnu-emacs@m.gmane-mx.org; Tue, 17 Jan 2023 20:12:35 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pHrNP-0006N4-Mt; Tue, 17 Jan 2023 14:12:07 -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 1pHrNN-0006MQ-Fn for help-gnu-emacs@gnu.org; Tue, 17 Jan 2023 14:12:05 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pHrNI-0005Ke-0S for help-gnu-emacs@gnu.org; Tue, 17 Jan 2023 14:12:04 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1pHrNG-0003jS-Pb for help-gnu-emacs@gnu.org; Tue, 17 Jan 2023 20:11:58 +0100 X-Injected-Via-Gmane: http://gmane.org/ 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: 5 X-Spam_score: 0.5 X-Spam_bar: / X-Spam_report: (0.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.help:142336 Archived-At: Jean Louis writes: > * tomas@tuxteam.de [2023-01-17 19:45]: >> Higher maths are a superset of (and sometimes a correction of) what >> is taught in elementary schools. Lisp takes this inspiration from >> higher maths. John McCarthy [1] was a mathematician by training and >> most definitely had no qualms with zero- or one-term products and >> sums. You have no choice but (believe me, I studied that too). As >> soon as you have general sum and product formulae, you /need/ to >> define what happens in border cases, and those conventions you seem >> to dislike so much have turned out to be the most convenient, >> probably since the mid-19th century. > > Thanks. I am following your hints, but I am not getting answer. > > If you know why they are convenient, can you please explain me? That > is what I am asking. [ I posted some references that might help, but I posted them in the wrong thread :( ] The "empty sum" and "empty product" conventions are described in the corresponding articles in Wikipedia too - they might help: https://en.wikipedia.org/wiki/Empty_sum https://en.wikipedia.org/wiki/Empty_product Do not think of `(+ ...)' in Lisp as the (binary) addition operator: think of it as the sum operator (denoted Σ in math) which adds up a whole sequence of numbers. Similarly, think of `(* ...)' in Lisp as the product operator (denoted Π in math). It is more pre-calculus level math, rather than elementary school math. The conventions are useful in math because they simplify proofs, by eliminating special cases. The same conventions are useful in Lisp, because they make the Lisp operators behave similarly to the math operators, so everything that you know about them can translate directly to Lisp. That's the *whole* point: there is nothing more to it. -- Nick