From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Barry Margolin Newsgroups: gmane.emacs.help Subject: Re: Why is booleanp defined this way? Date: Sat, 18 Apr 2015 00:56:42 -0400 Organization: A noiseless patient Spider Message-ID: References: <87twwemaxx.fsf@debian.uxu> <138bf565-898d-4b5a-8bea-eecd223c652b@googlegroups.com> <87d2322li0.fsf@debian.uxu> NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1429333218 6025 80.91.229.3 (18 Apr 2015 05:00:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sat, 18 Apr 2015 05:00:18 +0000 (UTC) To: help-gnu-emacs@gnu.org Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Sat Apr 18 07:00:18 2015 Return-path: Envelope-to: geh-help-gnu-emacs@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 1YjKra-0007IZ-4f for geh-help-gnu-emacs@m.gmane.org; Sat, 18 Apr 2015 07:00:18 +0200 Original-Received: from localhost ([::1]:44508 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YjKrZ-0003H9-4z for geh-help-gnu-emacs@m.gmane.org; Sat, 18 Apr 2015 01:00:17 -0400 Original-Path: usenet.stanford.edu!news.kjsl.com!feeder.erje.net!1.eu.feeder.erje.net!news.albasani.net!eternal-september.org!feeder.eternal-september.org!mx02.eternal-september.org!barmar.motzarella.org!.POSTED!not-for-mail Original-Newsgroups: gnu.emacs.help Original-Lines: 62 Injection-Info: barmar.motzarella.org; posting-host="2be9e9f5dd9af768b8861af71b85fc28"; logging-data="8998"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX189F5aCWnoACK+LJcPVpcR1" User-Agent: MT-NewsWatcher/3.5.3b3 (Intel Mac OS X) Cancel-Lock: sha1:eqx6lmsdjNpbyVVfsYUrAddp7DI= Original-Xref: usenet.stanford.edu gnu.emacs.help:211522 X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.14 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.org@gnu.org Original-Sender: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.help:103804 Archived-At: In article , Rusi wrote: > On Saturday, April 18, 2015 at 8:41:19 AM UTC+5:30, Barry Margolin wrote: > > Emanuel Berg wrote: > > > > > Rusi writes: > > > > > > >> I never used `booleanp' and I never experienced > > > >> that the boolean built-in type was missing from my > > > >> "ontology". > > > > > > > > If you how to write (and grok) an 'if' you have > > > > boolean in your ontology. That you dont know that > > > > you know is ok > > > > > > I know what a *boolean* is, just not why I would need > > > a built-in data type to express it. > > > > It's not a built-in type. It's a conceptual type, like "list". > > Ha! Ha!! What a fantastic one-line summary-example of what I was trying to > say! > > I always marvel at how Lisp puns on the word 'list': > - Sometimes 'normal' lists -- like arrays in other languages > - Sometimes heterogeneous -- like structs > - Sometimes recursive structured -- aka trees > - Sometimes homoiconic -- code=data > - And yet at bottom they are just s-expressions -- the barest possible binary > tree -- each internal node containing nothing but subtrees > > And so -- to expand a little on what you are saying: > -- Getting lisp limited to the formal language definition is nothing more > than > getting the defs of car/cdr/null/nil/cons > -- Getting lisp as a lisp programmer means getting all the above and more, > making Eric Raymond's mystical sounding quote quite literal: > > | Lisp is worth learning for the profound enlightenment experience you will > | have when you finally get it; that experience will make you a better > | programmer for the rest of your days, even if you never actually use Lisp > | itself a lot. Indeed. I remember when I first learned Lisp. After having programmed mainly in BASIC and Assembly until then, it forced me to learn entirely new levels of abstraction. But once it clicked, I was forever changed. I don't think it's saying too much to say that going through that process has made it easier for me to learn all the new languages since then. It's kind of related to Greenspun's Rule that any sufficiently complicated program contains an ad hoc implementation of Lisp. If you take a look at most modern programming languages (Perl, PHP, Python, C++), you can see all the Lisp influences (closures and lexical scope, object references) -- the only thing they refuse to adopt are Lisp-style macros and of course the parenthesized Polish notation. -- Barry Margolin, barmar@alum.mit.edu Arlington, MA *** PLEASE post questions in newsgroups, not directly to me ***