Subject: Re: On nil qua false [was: Re: On conditionals]
From: Erik Naggum <>
Date: Wed, 28 Nov 2001 06:59:56 GMT
Newsgroups: comp.lang.lisp
Message-ID: <>

* Andreas Bogk <>
| Just that I am a non-CL user (yet, I wish I would get clg working...),
| doesn't mean I cannot imagine what it would be like to work with a
| Lisp where nil equals '().

  People who imagine things that are not so, have a very strange tendency
  to believe that other things remain unchanged which would be _very_
  different if their simple "change" were indeed made.  It takes a very,
  very smart person to lie consistently about something for a long time
  without being exposed, because all things interconnect and two things
  that would normally exclude eachother seem to be true at the same time.
  The unusual ability of liars to explain apparent contradictions is one of
  the things that give them away.  The knowledge of the world possessed by
  honest people is limited in strange and unpredictable ways, and sooner or
  later, you run into something they cannot explain, but this is _normal_.
  A person who has constructed a make-believe world has had to make up so
  much that the boundaries of their knowledge tend to be more predictable
  and they exceed other people in their detailed knowledge of their world,
  because of their fear that the unexplainable will give them away.  Even
  knowing this, it is extremely hard to lie convincingly -- those who are
  best at it write long novels, which differ from other elaborate lies in
  that they do not even _intend_ to be true.

  In other words, I strongly doubt that you can.

| As a feature, it feels like a convenience hack so you can write 
| (if foo) instead of (unless (empty? foo)).

  Is this the extent of your imagination?

| That's not much of a gain, given that you have just violated the design
| rule of having a way to differentiate between a valid and an invalid
| result.

  Where the hell did this rule come from?  I thought you had rejected laws
  that were immoral or meaningless because your upbrining in dictatorships.
  What makes you even _believe_ that you can dictate such rules and _not_
  have people object to the nonsense?

| Still, it adds to the learning curve for newcomers, and potentially uses
| up cycles in your brain that you could use to solve the actual problem
| instead.

  As a matter of fact, (when foo ...) has a _much_ lower cognitive load
  than (unless (empty? foo) ...).  If you at _least_ had rewritten it as
  (when (pair? foo) ...), you might have a fighting chance, but the two are
  not quite similar -- foo could be a non-list, in which case empty? might
  provide the wrong answer.  An empty string or vector or hashtable or
  package or whatever is true in Common Lisp, but empty? should be true of
  all of these.  You would in fact have to be

(unless (or (not (list? foo)) (not (pair? foo))) ...)

  to be an accurate "translation", or you could of course write

(unless (not (eql foo <false>)) ...)

  which just proves that (when foo ...) is the _correct_ choice!

| As with laws, it's hard to see afterwards what the compromises involved
| were.  Judging from what I've read in several documents about the history
| of Lisp, CL was a rather hairy compromise.

  That _should_ tell you something about people, _not_ about languages.

| I just sometimes have that imagination of a painting designed by a
| committee of Rembrandt, Van Gogh and Dali.

  When I see people denounce the work of several people who work together,
  I see a person who thinks _much_ too highly of his own abilities.  Out of
  all the millions, if not billions, of painters in the history of the
  world, the handful of geniuses who _did_ paint better than a committee
  would have done actually prove that committees do a better job than the
  (- total-world-population number-of-geniuses) people would.  However, if
  you think of _yourself_ as the Rembrandt of programming language design,
  this may be hard to understand.  However, since irrationally exaggerated
  egos tend to cause few problems until they are challenged (at which point
  such people implode and/or become physically violent), staying away from
  people who put a bullet through inflated egos is a good survival tactic,
  as is trying to intimidate anyone who can expose them, and one may in
  fact keep believing that one's ego is the correct size for quite a while.
  E.g., I know a lot of people who are better than me at many of the things
  I want to be good at, but I know far, far more people who only _think_
  they are and who have yet to wake up and smell the coffee and realize
  their "ranking".  These latter people tend to hate me for not allowing
  them to keep thinking they are far better than they are.

| One of the things on my list is finding out whether this benefit is
| really there or if it could be achieved by other means.

  Whether it could or not is irrelevant unless you are designing a new
  language from scratch -- and you do not do that in a newsgroup for an
  established language, at least not under such pretenses as you do.

  The question is whether it should even be attempted.  Smart people can
  figure out better ways to make democracy work, but when people who are
  too smart for their own good get brilliant ideas, they tend to set up
  dictatorships, instead, because the royal mess that is democracy in
  action is actually _much_ worse than _any_ isolated theory could be --
  until implemented.  And that is what makes them _better_, because the
  crucial element of a democracy is that people agree only on what _not_ to
  do, not on what to _do_.  Basically, what they end up doing is a fall-out
  of what they have agreed to _exclude_ from the possibility of being done.
  Given the resources of modern countries, _anything_ could be achieved.
  It is what we give high enough priority that it excludes a lot of stuff
  that actually gets done.  In the budgeting and prioritizing process of
  politics, the actual agreements are over what _not_ to do with all that
  money, what _not_ to bring up again during the budget period.  Budget
  debates are not about the money, but about killing political ideas.

| That's just to lure in the newbies, in whose eyes this *is* a bug.

  So you admit to fraudulent marketing.  Well, good luck with Dylan.

| In my view, it's a minor inconvenience that I don't actually mind
| anymore, and probably just a cultural thing.

  "Just a cultural thing"?  That is precisely what the super-tolerant
  idiots say about the molestation of young females in backward cultures
  that claim it is their "religion" that defends this criminal act against
  at least half of humanity.  Cultures are tremendously important, and some
  of them are just plain _bad_.

  _Culture_ is at the very core of why people choose language communities.

| The s-expression argument comes up quite often.  Why not, as an
| experiment, start telling the newbies that, even though you think
| s-expressions are superior, they can try Dylan to learn the basic
| concepts, and then come back later to learn about advanced concepts.

  Why the hell would Common Lisp users want to do that?  I think you, the
  proposer of this idiotic manipulation attempt, suggest to your Dylan
  users to try out Common Lisp before they tire of Dylan's shortcomings.
  Man, you are so incredibly short-sighted you insult your own intelligence
  with such a stupid, stupid suggestion.  You really _are_ a marketing and
  advertising person, are you not?  Zero technical skills compensated for
  by lots of smooth talking could produce such an incredibly _dumb_ attempt
  to pull the wool over so many people's eyes, but not honesty and smarts.

| Discussing the Right Thing naturally boils down to discussing the
| context, and that's productive.

  That "context" is a large framework of what has been excluded from the
  discussion.  In essence, The Right Thing is whatever is left when you
  have agreed not to pursue a very large number of paths.  It is the same
  way when people say they have chosen their new car through a careful
  process of weighing positive and negative sides, cost and efficiency, and
  can make a perfect explanation for why this car is _the_ best choice.
  What they usually omit from this story is how they "decided" to not even
  consider 99% of the car market before they started weighing anything at
  all and probably were left with a handful of models, if not actual cars,
  based on unexpressed and emotionally determined desiderata, among which
  some _actually_ irrelevant factor was "weighed" and found sufficient.

  To trace the history of how we ended up with our conclusions, ignore all
  the explicit arguments and premises and logic and focus on what went down
  the drain before you even _started_ to think about it.  _That_ is where
  you will find the history.  It is not as accidental as you might think.
  What we do _automatically_ is what defines our sense of culture.  If you
  come from a different culture, you will fail to find the reasons in the
  _explicit_ history of the new culture.  (This is why history is such a
  hard discipline and requires people who are able to put themselves in the
  context of their discoveries.)

  It is fundamentally unproductive to "discuss" the context.  Either you
  grasp it more or less automatically, or you fail to.  If you do not, you
  can find particular reasons why it failed, but if you persist, you will
  only be an outsider looking in at something you do not understand.  If,
  on the other hand, you accept that whatever this new thing is, you should
  let it influence you before you try to influence it, you will slowly grow
  into its frame of mind in ways that are incredibly hard to explain
  because it happens just as implicitly as how two people grow together
  when they live together, how pets and their owners communicate without
  any signs that outsiders can observe, how we attribute this to intuition
  when in fact it is nothing more than the ability to discern signals that
  other people overlook.

  Discussing underlying premises of the tacitly accepted and rejected
  requires specially trained people.  Philosophers and psychologists are
  sometimes able to pick up those underlying premises, but the Heisenberg
  uncertainty principle applies to people, too: just by asking and _making_
  people think about something, you have influenced their thinking and in
  minute ways changed them.  The amount of intellectual attention and
  dedication to detail necessary to prevent errors and both false positives
  and negatives in this process is _frightening_ to the untrained.

  Consequently, I completely fail to see how you can even assume that you
  would be able to conduct and complete this procedure fruitfully without
  massive loss of accuracy even if you did it face to face with people.  In
  fact, I expect that such a procedure would be a total wash on USENET.
  Therefore, discussing the context here _must_ be counter-productive.

| But I might claim that someone is wrong if he presents an argument that
| contradicts a common context we've established before.

  But because you are an outsider by choice, you would not be able to
  determine this.  Someone who decides to learn something fully, has to
  _immerse_ themselves in it before he starts to think too much, or the
  process of immersion and learning and understanding will _fail_.  If you
  start to think too early in the process, you will use your previous
  contexts to validate what you are learning, and that is wrong.  By so
  doing, you will block your ability to validate using a different context,
  unless you are very, very smart and self-aware.  Very few people are.

| If in his model there is no contradiction, he must be using different
| axioms than me, and isolating these differences can be a rewarding
| insight to both participants of the discussion.  That would perfectly
| refute my claim of wrongness.

  Your belief in a logic you have demonstrated a serious lack of ability to
  handle productively is downright charming, but it is so much hard work
  and so painful a process that it must be a matter of _habit_, not a
  matter of studiously conscious procedures done in your sunday clothes
  only when called upon.  If you are sloppy and confused and do not look
  carefully at your observations and conclusions _regularly_, you are not a
  person with whom this process can be expected to produces good results.

  I am looking forward to how well you understand these premises of a
  discussion at the level you seem to seek.  I think it is just as much
  pretense and hogwash as claims to live in a world of "proofs", which is
  also only for show to people who do not think it through.

| It's Yin and Yang.  I can only establish facts about how important an
| argument is to someone by trying to push them.  It is polite to keep
| that push as small as possible, and a strong reaction to a small push
| indicates a big force not originating from me.

  This presupposes that there is a priori and universal agreement on the
  amount of push -- that I cannot think your push was bigger than you think
  it was.  Since this is obviously ridiculous to base an argument on, what
  such a reaction _really_ indicates is most probably that you have failed
  to assess the amount of push you exerted correctly, and particularly so
  because you failed to understand that you relied on an agreement that
  simply _could_ not exist, for your argument to be true.  Such sloppiness
  in thinking that pretends to be logical is actually quite alarming, as it
  indicates that you have never been challenged on its fundementals and
  have been allowed to walk through life thinking much too highly of your
  logical abilities and the guaranteed results of applied logic.  This is
  almost like watching old Star Trek episodes with the ridiculous role of
  Spock, who is "logical" based on a bunch of ludicrous premises.

  The lack of precision and willingness to think through what you are
  saying is downright annoying.  You think too little and talk too much.
  Nice words, looks good to the careless observer, but is just bullshit.
  You simply fail to understand that people do not just disagree on some
  surface issue -- they may disagree all the way down.  Even if you seem to
  agree on _some_ aspects of something, that is absolutely no guarantee
  that this is accidental.  E.g., a realist and an idealist may agree on
  the fruitlessness of homeopathic "medicine" for reasons that look the
  same for a while, but than radically depart on some core principle.
  People can likewise agree on some "Lispness" of their pet languages, but
  strongly disagree that a language that lacks s-expressions in its syntax
  should even pretend to be "a Lisp".

| If you consider it advertising when I'm saying that Dylan was a good
| idea, then yes, I am advertising.  But it's honest, since that's my
| opinion that I can back with arguments, and I can be convinced otherwise
| with better arguments.

  What utter nonsense.  You decided on what made you choose Dylan long
  before you ever heard any "argument" either way.  You will not be swayed
  on any but the most superficial points by arguments.  You will, instead,
  protect yourself from such swaying.  How can I say this so certainly?
  Because you show an amazing lack of insight into how people choose and
  value things.  Of course, now that I have said this, you may think about
  it and you may decide to surprise me.  That would be kind of fun.

| I do not mean to flame, troll, or insult people.  I'm coming here with an
| open mind, and a story to tell.

  You would like to believe so, but it is in fact false.

  If you react _defensively_ to the last line, your mind is _not_ open.

  I think I dislike that trolls that come in nice suits more than the
  stinking homeless bum trolls.

  The past is not more important than the future, despite what your culture
  has taught you.  Your future observations, conclusions, and beliefs are
  more important to you than those in your past ever will be.  The world is
  changing so fast the balance between the past and the future has shifted.