[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 <b006075a-9af5-4624-ab5b-c31e8e29f627@googlegroups.com>,
Rusi <rustompmody@gmail.com> 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 ***
- Re: Why is booleanp defined this way?, (continued)
Re: Why is booleanp defined this way?, Rusi, 2015/04/17
- Re: Why is booleanp defined this way?, Emanuel Berg, 2015/04/17
- Re: Why is booleanp defined this way?, Rusi, 2015/04/17
- Re: Why is booleanp defined this way?, Emanuel Berg, 2015/04/17
- Re: Why is booleanp defined this way?, Barry Margolin, 2015/04/17
- Re: Why is booleanp defined this way?, Rusi, 2015/04/17
- Re: Why is booleanp defined this way?,
Barry Margolin <=
- Re: Why is booleanp defined this way?, Emanuel Berg, 2015/04/19
- Re: Why is booleanp defined this way?, Emanuel Berg, 2015/04/19
Re: Why is booleanp defined this way?, Emanuel Berg, 2015/04/18
Re: Why is booleanp defined this way?, Marcin Borkowski, 2015/04/18
Message not availableRe: Why is booleanp defined this way?, Rusi, 2015/04/18
Re: Why is booleanp defined this way?, Pascal J. Bourguignon, 2015/04/18
Re: Why is booleanp defined this way?, Rusi, 2015/04/18
Re: Why is booleanp defined this way?, Pascal J. Bourguignon, 2015/04/18