help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why is booleanp defined this way?


From: Barry Margolin
Subject: Re: Why is booleanp defined this way?
Date: Sat, 18 Apr 2015 00:56:42 -0400
User-agent: MT-NewsWatcher/3.5.3b3 (Intel Mac OS X)

In article <address@hidden>,
 Rusi <address@hidden> 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, address@hidden
Arlington, MA
*** PLEASE post questions in newsgroups, not directly to me ***


reply via email to

[Prev in Thread] Current Thread [Next in Thread]