From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Richard Stallman Newsgroups: gmane.emacs.devel Subject: Re: proposal to make null string handling more emacs-y Date: Sat, 02 Jun 2012 23:45:47 -0400 Message-ID: References: <83d36wfcf1.fsf@gnu.org> <834ns7g9r8.fsf@gnu.org> <20380.26502.202440.851555@winooski.ccs.neu.edu> Reply-To: rms@gnu.org NNTP-Posting-Host: plane.gmane.org Content-Type: text/plain; charset=ISO-8859-15 X-Trace: dough.gmane.org 1338695175 23207 80.91.229.3 (3 Jun 2012 03:46:15 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 3 Jun 2012 03:46:15 +0000 (UTC) Cc: emacs-devel@gnu.org To: Eli Barzilay Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jun 03 05:46:14 2012 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Sb1le-0002df-0K for ged-emacs-devel@m.gmane.org; Sun, 03 Jun 2012 05:46:14 +0200 Original-Received: from localhost ([::1]:56153 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sb1ld-0000Na-HO for ged-emacs-devel@m.gmane.org; Sat, 02 Jun 2012 23:46:13 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:60232) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sb1lZ-0000NO-Rh for emacs-devel@gnu.org; Sat, 02 Jun 2012 23:46:11 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Sb1lV-0006Ek-Bu for emacs-devel@gnu.org; Sat, 02 Jun 2012 23:46:09 -0400 Original-Received: from fencepost.gnu.org ([208.118.235.10]:55607) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Sb1lV-0006EY-8T for emacs-devel@gnu.org; Sat, 02 Jun 2012 23:46:05 -0400 Original-Received: from rms by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1Sb1lD-0003Vp-A0; Sat, 02 Jun 2012 23:45:47 -0400 In-reply-to: <20380.26502.202440.851555@winooski.ccs.neu.edu> (message from Eli Barzilay on Sat, 28 Apr 2012 17:56:22 -0400) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 208.118.235.10 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:150751 Archived-At: > The benefit of making () and false the same in Lisp is NOT a matter > of suppressing errors. Sure it is. (null? (< 1 2)) makes no semantic sense, and you get an error. In other lisps, (null (< 1 2)) makes no sense It does make sense. The distinction made in Scheme between nil and false does not exist. `null' and `not' are equivalent; it is not a matter of using one meaning a fallback for another. That () and false are the same object is a feature. > The benefit is that we can simplify programs by knowing that () and > false are the same. Right, and you get more of these benefits if it's also the same as "" and as 0, and there are additional benefits in the same direction: allow using `nil' as a function (that returns `nil' when called), allow adding numbers, strings, lists, etc with implicit coercions, maybe allow using numbers and lists as functions (as in arc), and allow referring to undefined variables and calling undefined functions. This idea is not ridiculous, but I am not convinced the benefits are worth the cost. Putting these changes in Emacs Lisp (as opposed to some new system) could lead to bad incompatibility problems. I am pretty sure there are things that depend on the fact that "" and nil are different objects. To get much benefit from nil = 0, I think we would need t = 1. Arguing that some of these things are better or worse is wrong. It doesn't make sense to reject unifying "" and `nil' on one hand and reject separating false and '() on the other -- *unless* it's clear that it's a subjective decision. Both of these decisions are a matter of comparing advantages. The advantages to be compared are different in the two cases, so there is no reason to think they should be decided alike. -- Dr Richard Stallman President, Free Software Foundation 51 Franklin St Boston MA 02110 USA www.fsf.org www.gnu.org Skype: No way! That's nonfree (freedom-denying) software. Use Ekiga or an ordinary phone call