From ... Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsfeeds.belnet.be!news.belnet.be!news2.kpn.net!news.kpn.net!nslave.kpnqwest.net!nloc.kpnqwest.net!nmaster.kpnqwest.net!nreader3.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: On conditionals References: <3215299538573186@naggum.net> <9tgcpc$3ce$1@news.gte.com> <3215360195434986@naggum.net> Mail-Copies-To: never From: Erik Naggum Message-ID: <3215376680290370@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 53 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Thu, 22 Nov 2001 00:11:22 GMT X-Complaints-To: newsmaster@KPNQwest.no X-Trace: nreader3.kpnqwest.net 1006387882 193.71.66.49 (Thu, 22 Nov 2001 01:11:22 MET) NNTP-Posting-Date: Thu, 22 Nov 2001 01:11:22 MET Xref: archiver1.google.com comp.lang.lisp:20681 * Thomas F. Burdick | I'm not so sure about false, though. I don't like the pun that () is the | same as boolean false. I also don't like that the empty list is a | symbol. Don't get me wrong, it's easy enough to cope with, but it's | conceptually sloppy. I find it conceptually very clean. I find it equally conceptually clean that 0 is false in C. Neither do I have any problems with Perl's false values. I do have a problem with Scheme's anal-retentive false, because it is so goddamn hard to obtain a false. | I don't even see any good reason why NIL should be false. There has to be at least one false value. Making the empty list false is simply a very good choice for a language that gives you lists as a close to primitive type. Linked lists have to be terminated by _something_, and that something might as well be the answer to the question: "Are there any more elements?" as a matter of pragmatics. | So, I guess what I'm saying is that you ought to explain your objection | here (or point to a message where you've explained it before, since I'm | sure you have). I have lost track of which objection you might be referring to here, but I hazard a guess it is that I think making nil different from false is nuts. It is nuts from a pragmatic point of view. Conceptualizations that go against the pragmatic are even more wrong than Scheme in general, but it is precisely because Scheme's conceptulization is impractical that they have chosen to make their language impractical but conceptually pure. I think Scheme is an excellent example of how you go wrong when you decide that "practicality" is a worthless axis to find a reasonable position on, or not even consider at all. Common Lisp is a practical language and its conceptualization is one of trying to figure out what the most elegant practical expression would be, not how impractical the most elegant expression would be. This is just something Scheme freaks will never accept as a point of serious difference between Common Lisp and Scheme. I look at Scheme from a Common Lisp viewpoint, of course, and that is not very productive, but Dorai Sitaram brought up this Scheme nonsense as a reasonable way to talk about Common Lisp features. I think I put it sufficiently clear when I started my reply with "Scheme is all wrong". Those who do not think so are of course free to talk about Scheme all they want, but the sheer _insistency_ that Scheme freaks come to present their "views" about Common Lisp is really annoying. At least they have their own community, so it is not as if they are fragmenting the _Common_ Lisp community, but they also think they have a Lisp, and that is at least as annoying. /// -- Norway is now run by a priest from the fundamentalist Christian People's Party, the fifth largest party representing one eighth of the electorate. -- Carrying a Swiss Army pocket knife in Oslo, Norway, is a criminal offense.