From: Barry Margolin <barmar@alum.mit.edu>
To: help-gnu-emacs@gnu.org
Subject: Re: Why is booleanp defined this way?
Date: Sat, 18 Apr 2015 00:56:42 -0400 [thread overview]
Message-ID: <barmar-CA9E96.00564218042015@88-209-239-213.giganet.hu> (raw)
In-Reply-To: b006075a-9af5-4624-ab5b-c31e8e29f627@googlegroups.com
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 ***
next prev parent reply other threads:[~2015-04-18 4:56 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.946.1429302909.904.help-gnu-emacs@gnu.org>
2015-04-17 20:55 ` Why is booleanp defined this way? Pascal J. Bourguignon
2015-04-17 23:20 ` Barry Margolin
2015-04-17 23:30 ` Emanuel Berg
2015-04-18 0:43 ` Pascal J. Bourguignon
2015-04-18 3:13 ` Barry Margolin
2015-04-18 3:12 ` Barry Margolin
2015-04-18 2:01 ` Rusi
2015-04-18 2:23 ` Emanuel Berg
2015-04-18 2:33 ` Rusi
2015-04-18 2:55 ` Emanuel Berg
2015-04-18 3:11 ` Barry Margolin
2015-04-18 3:35 ` Rusi
2015-04-18 4:56 ` Barry Margolin [this message]
2015-04-19 23:08 ` Emanuel Berg
2015-04-19 23:00 ` Emanuel Berg
2015-04-18 21:24 ` Emanuel Berg
2015-04-18 7:52 ` Marcin Borkowski
[not found] ` <mailman.997.1429343558.904.help-gnu-emacs@gnu.org>
2015-04-18 12:43 ` Rusi
2015-04-18 4:09 ` Pascal J. Bourguignon
2015-04-18 5:00 ` Rusi
2015-04-18 3:50 ` Pascal J. Bourguignon
2015-04-18 5:03 ` Stefan Monnier
2015-04-17 20:34 Marcin Borkowski
2015-04-17 20:49 ` Jorge A. Alfaro-Murillo
[not found] ` <mailman.962.1429303822.904.help-gnu-emacs@gnu.org>
2015-04-17 23:06 ` Emanuel Berg
2015-04-18 0:41 ` Pascal J. Bourguignon
2015-04-18 1:06 ` Emanuel Berg
2015-04-18 1:23 ` Pascal J. Bourguignon
2015-04-18 7:44 ` Marcin Borkowski
2015-04-18 8:37 ` Stefan Nobis
2015-04-19 23:15 ` Emanuel Berg
2015-04-18 2:37 ` Drew Adams
2015-04-18 6:13 ` Tassilo Horn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=barmar-CA9E96.00564218042015@88-209-239-213.giganet.hu \
--to=barmar@alum.mit.edu \
--cc=help-gnu-emacs@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.