Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Unlearning Lisp

163 views
Skip to first unread message

Jon Harrop

unread,
Jun 29, 2007, 6:11:36 AM6/29/07
to

Most people have managed to uninstall Lisp but many are still having trouble
unlearning it. This story is well known from programming language folklore
where it is said that "BASIC (and Lisp) pollute your mind and make you a
worse programmer".

There are many interesting examples of this on the web:

http://cs.hubfs.net/forums/thread/2421.aspx
"What am I missing about types?" by DoomChild

In this thread, DoomChild presents the following F# code:

let checkType thing =
match thing with
| bool -> "a bool"
| _::_ -> "a list";;

This is clearly because he grew up in the dynamically-typed Lisp ghetto. He
is trying to do run-time type dispatch but ends up with a function that
always returns "a bool" and can only be applied to lists.

http://curiousprogrammer.wordpress.com/2006/12/22/speed-comparison-plt-scheme-ocaml-and-c/
"Speed comparison: PLT Scheme, Ocaml and C++" by Ian O

Interestingly, Ian is having the opposite problem. His OCaml implementation
of the n-queens problem boxes too much and introduces the unnecessary
run-time checks so typical of Lisp:

let valid_board b =
match b with
Some (Board (_, _)) -> true
| _ -> false;;

Nice to see the pattern matching getting in there though.

http://groups.google.co.uk/group/fa.caml/msg/62b92ec6db3a46dd
"Continuations and consing" by Thomas Fischbacher

In this case, Thomas is a much better versed programmer of statically-typed
languages but he still makes the classic mistake of assuming that a Lisp
optimization carries through to OCaml (we've all done it). Even worse, he
wants to address the non-existent inefficiency using macros (as Juho
Snellman did in my ray tracer benchmark).

Specifically, he asks the reader to choose from these two implementations:

let sum_nums n =
let rec work sum todo =
if todo=0 then sum
else work (sum+todo) (todo-1)
in work 0 n

let sum_nums2 n =
let rec work (sum,todo) =
if todo=0 then sum
else work ((sum+todo),(todo-1))
in work (0,n)

when, in fact, they produce the same code.

A common theme is that these people didn't realise the cost of the
abstractions that Lisp was imposing upon them with regard to performance
and correctness. Did you?

--
Dr Jon D Harrop, Flying Frog Consultancy
The OCaml Journal
http://www.ffconsultancy.com/products/ocaml_journal/?usenet

Espen Vestre

unread,
Jun 29, 2007, 6:41:41 AM6/29/07
to
Jon Harrop <j...@ffconsultancy.com> writes:

> Most people have managed to uninstall Lisp but many are still having trouble
> unlearning it.

Yeah, I have trouble unlearning eating gourmet food too, junk food
tastes like sh*t, no matter how hard I try.
--
(espen)

Ken Tilton

unread,
Jun 29, 2007, 6:45:27 AM6/29/07
to
(position #\a "bbaa" :start 42) -> 76?

puh-lease.

Actually, I am whining about CLHS, doesn't say word about oddball values
for start.

kt

Rob Warnock

unread,
Jun 29, 2007, 7:22:19 AM6/29/07
to
Ken Tilton <kent...@gmail.com> wrote:
+---------------
+---------------

Well, actually, it sort of does, in that:

Function POSITION, POSITION-IF, POSITION-IF-NOT
...
Arguments and Values:
...
start, end---bounding index designators of sequence.
The defaults for start and end are 0 and nil, respectively.

And then if you go to the glossary entries for (all three of!)
BOUNDING INDEX DESIGNATOR, BOUNDING INDEX, and BOUNDED, you
eventually get to this bit:

...restricted to a subrange of the elements of S that...

and 42 is certainly *NOT* a designator for a :START that's restricted
to a subrange of "bbaa". So 42 is not a proper type for a :START arg
in this case.

And CLHS 1.4.4.3 "The ``Arguments and Values'' Section of a Dictionary
Entry" very clearly states:

Except as explicitly specified otherwise, the consequences
are undefined if these type restrictions are violated.

And we all know about the CLHS and undefined behaviors... ;-} ;-}


-Rob

p.s. Of course, any *decent* implementation will be more gentle,
and instead of starting WW3 or emitting snot monkeys will throw you
a handleable type error, e.g., CMUCL:

> (multiple-value-list (ignore-errors (position #\a "bbaa" :start 42)))

(NIL #<TYPE-ERROR {48970025}>)
> (format t "~a~%" (second *))
Type-error in KERNEL::INVALID-ARRAY-INDEX-ERROR-HANDLER:
42 is not of type (INTEGER 0 (4))
NIL
>

-----
Rob Warnock <rp...@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607

Larry Clapp

unread,
Jun 29, 2007, 7:51:22 AM6/29/07
to
On 2007-06-29, Jon Harrop <j...@ffconsultancy.com> wrote:
> Most people have managed to uninstall Lisp but many are still having
> trouble unlearning it.

Most people have managed to killfile Jon Harrop but many are still
having trouble unreading him.

> This story is well known from programming language folklore where it
> is said that "BASIC (and Lisp) pollute your mind and make you a
> worse programmer".

Awesome troll, man. World class. You should work for a politician.
You missed your calling. To so deftly combine lies with half-quotes
with out-of-context and unrelated facts, and all with a straight face
yet, should not go unrewarded.

> There are many interesting examples of this on the web:

Indeed, you are so bitter about (of all things) ... wait for it ...
*a computer language* ... that you constantly throw mud at it.


I'm curious, Jon, do you go to baseball games and talk about how much
baseball sucks and how much you like football? Do you go to Starbucks
and talk about how much you hate coffee and coffee drinkers are insane
and stupid and they should all switch to tea (and do you say this, in
all innocence, in front of the tea rack)? Do you go to hockey games
and tell the players how out of shape and clumsy they are? Do you go
to golf tournaments, plant yourself next to the putting greens, and
make loud speeches about how much golf sucks?

Do you go to hospitals and argue with the doctors on the way to
surgery about how their scalpels are all dull and outdated and they
should switch to your new Laser Sighted Cutting Device(tm) (for a
small fee) (okay, maybe a large fee) (okay, and they'll have to switch
hospitals)? Do you go to steel plants and argue with people welding
thousand pound chunks of metal that they're doing it wrong and welding
is soooo primitive and they should get a clue and use something
better?

Do you barge in on artists and argue with them about their paints,
their brushes, their subject matter, and the fact that in your not
very humble at all opinion painting should die out and all art should
be done using crayons?

Why are you here, Jon?

You are in your little cave trying to show us the light of your cute
little flash light, and we're out there in the sun, *trying* to enjoy
the serenity of our s-expressions. "Come back to the cave! Look at
my flashlight! It runs on a AA! It's soooo much better than using
*matches* for light!"

Please, Jon. Stay in your cave. Be happy there. Show all the
denizens your cool new flashlight.

And for the love of God be *quiet*.

Rainer Joswig

unread,
Jun 29, 2007, 8:06:42 AM6/29/07
to
On 2007-06-29 13:51:22 +0200, Larry Clapp <la...@theclapp.org> said:

>
> Why are you here, Jon?

Because he wants to make money with his business.

He has a long history with spamming and trolling.
He is also active in other newsgroups. All his stuff
got banned from Wikipedia. He was busy putting
his links on Wikipedia pages not understanding
the concept and purpose of Wikipedia.
You can still see the trouble people had with him
in the discussion and history pages there.
Earlier he was putting some useless physics stuff
online and now he has a new pet topic.

I'd say it is best to ignore his drivel and not to discuss things with him.
He does not care about the topic here and he won't learn
and change his behavior.

--
http://lispm.dyndns.org/

Jon Harrop

unread,
Jun 29, 2007, 8:40:10 AM6/29/07
to
Espen Vestre wrote:
> Yeah, I have trouble unlearning eating gourmet food too, junk food
> tastes like sh*t, no matter how hard I try.

Mmm, food blub. :-)

Jon Harrop

unread,
Jun 29, 2007, 8:44:13 AM6/29/07
to
Larry Clapp wrote:
> Awesome troll, man. World class.

Thanks. I knew it would go down well here. :-)

Tamas Papp

unread,
Jun 29, 2007, 8:52:51 AM6/29/07
to
Larry Clapp <la...@theclapp.org> writes:

> On 2007-06-29, Jon Harrop <j...@ffconsultancy.com> wrote:
>> Most people have managed to uninstall Lisp but many are still having
>> trouble unlearning it.
>
> Most people have managed to killfile Jon Harrop

But people like you reply to him so they still see his posts.

Tamas

Jon Harrop

unread,
Jun 29, 2007, 8:52:49 AM6/29/07
to

Snigger. :-)

Jon Harrop

unread,
Jun 29, 2007, 8:55:58 AM6/29/07
to
Rainer Joswig wrote:
> Earlier he was putting some useless physics stuff online

If it was useless people wouldn't buy it:

http://www.ffconsultancy.com/products/CWT/HTML/tutorial.html

Larry Clapp

unread,
Jun 29, 2007, 9:55:56 AM6/29/07
to

Yeah, after I wrote that I finally read up on slrn's score file and
*plonked* him.

My first *plonk*. I'm so proud! :)

Kaz Kylheku

unread,
Jun 29, 2007, 3:47:32 PM6/29/07
to
On Jun 29, 5:06 am, Rainer Joswig <jos...@lisp.de> wrote:

> On 2007-06-29 13:51:22 +0200, Larry Clapp <l...@theclapp.org> said:
> > Why are you here, Jon?
>
> Because he wants to make money with his business.

Hahaha. Right, that's a common cover for being an unemployed loser:
the one man consulting company.

Tim Bradshaw

unread,
Jun 29, 2007, 8:36:02 PM6/29/07
to
On Jun 29, 1:55 pm, Jon Harrop <j...@ffconsultancy.com> wrote:

> If it was useless people wouldn't buy it:
>

I don't suppose you'd like to tell us how many people have?

Jon Harrop

unread,
Jun 30, 2007, 2:58:19 AM6/30/07
to
Tim Bradshaw wrote:
> I don't suppose you'd like to tell us how many people have?

Eleven, IIRC.

Anonymous

unread,
Jul 1, 2007, 3:58:39 PM7/1/07
to
Rainer Joswig wrote:

> All his stuff
> got banned from Wikipedia. He was busy putting
> his links on Wikipedia pages not understanding
> the concept and purpose of Wikipedia.

Like most spammers, he probably understood but didn't care. He inserted
his flying frog crap more than 80 times, before Wikipedians finally
managed to get rid of him.

His new strategy is very clever, almost brilliant. (There's a certain
sort of twisted worthless brilliance which is often found in spammers
and other parasitic sociopaths.)

Like other spammers, he chose to invade an existing community rather
than try to create a new community. Unlike other spammers, he loads his
spams with a particularly obnoxious kind of intellectual dishonesty which
is carefully calculated to cause maximum offense among the legitimate
members of the community.

This is very clever. When the spam complaints start arriving, he can
mischaracterise them to his service provider, claiming that the people
reporting the abuse are "just zealots who are offended because the content
of my articles criticised their religion" rather than spam victims who are
offended because he is abusing a pre-existing community in order to mount
an advertising campaign without having to pay for his advertising.

> I'd say it is best to ignore his drivel and not to discuss things with him.
> He does not care about the topic here and he won't learn
> and change his behavior.

The concept of "learning" is inapplicable, because his arguments are
deliberately dishonest. Continued re-posting of claims which have already
been refuted is one of the hallmarks of trolls and spammers. But his spew
will mislead newbies if left unanswered. Perhaps a very short followup,
with text like this: "You posted that argument before, spammer, and you
were soundly refuted. See <message id of previous refutation>."

P.S. He isn't a troll. Trolls do it for fun, spammers do it for money.

André Thieme

unread,
Jul 1, 2007, 4:42:01 PM7/1/07
to
Anonymous schrieb:

> Rainer Joswig wrote:
>
> P.S. He isn't a troll. Trolls do it for fun, spammers do it for money.


I suppose one other thing here.
He realized that Lisp is the most powerful programming language that we
have today. But this hurts. After he found OCaml he became happy and
thought that he now found the best. How disappointing must it have been
when he saw that OCaml is only useful for some few special things and
that really Lisp is better?
But it was too late. He now is in a position where it is not acceptable
for himself to admit that - he now has to defend OCaml as good he can.
But still, he can't leave Lisp, because he know how expressive it is.
He took much time to post here. His activities to convince C# or Java
people, or Ruby or Smalltalk fans were not very visible. It is mostly
Lisp. This behaviour usually can be seen in Religion. However obvious
the reasons you show for the non-existance of a god, the believers
continue to defend it. But this time the difference is that he knows
that he is wrong.

jos...@corporate-world.lisp.de

unread,
Jul 1, 2007, 6:27:36 PM7/1/07
to
On Jul 1, 9:58 pm, Anonymous <anonym...@example.com.invalid> wrote:
> Rainer Joswig wrote:
> > All his stuff
> > got banned from Wikipedia. He was busy putting
> > his links on Wikipedia pages not understanding
> > the concept and purpose of Wikipedia.
>
> Like most spammers, he probably understood but didn't care. He inserted
> his flying frog crap more than 80 times, before Wikipedians finally
> managed to get rid of him.

Right.

> His new strategy is very clever, almost brilliant. (There's a certain
> sort of twisted worthless brilliance which is often found in spammers
> and other parasitic sociopaths.)
>
> Like other spammers, he chose to invade an existing community rather
> than try to create a new community. Unlike other spammers, he loads his
> spams with a particularly obnoxious kind of intellectual dishonesty which
> is carefully calculated to cause maximum offense among the legitimate
> members of the community.
>
> This is very clever. When the spam complaints start arriving, he can
> mischaracterise them to his service provider, claiming that the people
> reporting the abuse are "just zealots who are offended because the content
> of my articles criticised their religion" rather than spam victims who are
> offended because he is abusing a pre-existing community in order to mount
> an advertising campaign without having to pay for his advertising.

That's interesting. I just have seen a very similar version of this
in a forum at www.dpreview.com used by another person. New coming in
into
a forum, makes lots of claims, old member gets angry and so on.
Old member then gets banned because the troll has complained to an
admin.

>
> > I'd say it is best to ignore his drivel and not to discuss things with him.
> > He does not care about the topic here and he won't learn
> > and change his behavior.
>
> The concept of "learning" is inapplicable, because his arguments are
> deliberately dishonest. Continued re-posting of claims which have already
> been refuted is one of the hallmarks of trolls and spammers. But his spew
> will mislead newbies if left unanswered. Perhaps a very short followup,
> with text like this: "You posted that argument before, spammer, and you
> were soundly refuted. See <message id of previous refutation>."
>
> P.S. He isn't a troll. Trolls do it for fun, spammers do it for money.

I guess it is both...


jos...@corporate-world.lisp.de

unread,
Jul 1, 2007, 6:37:12 PM7/1/07
to
On Jul 1, 10:42 pm, André Thieme <address.good.until.

2007.dec...@justmail.de> wrote:
> Anonymous schrieb:
>
> > Rainer Joswig wrote:
>
> > P.S. He isn't a troll. Trolls do it for fun, spammers do it for money.
>
> I suppose one other thing here.
> He realized thatLispis the most powerful programming language that we

> have today. But this hurts. After he found OCaml he became happy and
> thought that he now found the best. How disappointing must it have been
> when he saw that OCaml is only useful for some few special things and
> that really Lispis better?

> But it was too late. He now is in a position where it is not acceptable
> for himself to admit that - he now has to defend OCaml as good he can.
> But still, he can't leave Lisp, because he know how expressive it is.
> He took much time to post here. His activities to convince C# or Java
> people, or Ruby or Smalltalk fans were not very visible. It is mostly
> Lisp. This behaviour usually can be seen in Religion. However obvious
> the reasons you show for the non-existance of a god, the believers
> continue to defend it. But this time the difference is that he knows
> that he is wrong.

I think your view is naive. Given his track record on spamming,
it is easy to see that he is not interested in Lisp. He does the exact
stuff what he does here in comp.lang.c+ and even
in Mac forums. It is just a method to make money with his slimy
business. He goes to to comp.lang.fortran and explains 'modern'
software development. He is only interested in those newsgroups
to get 'customers' for his business. Plus there will always
be naive people like you (sorry), who think that he has
some interest, but lacks experience and that he can be convinced
that Lisp is useful. But this is, sorry, bullshit. He
is a real spammer. Not some misguided guy.

Nicolas Neuss

unread,
Jul 2, 2007, 5:10:51 AM7/2/07
to
Anonymous <anon...@example.com.invalid> writes:

> The concept of "learning" is inapplicable, because his arguments are
> deliberately dishonest. Continued re-posting of claims which have
> already been refuted is one of the hallmarks of trolls and spammers. But
> his spew will mislead newbies if left unanswered. Perhaps a very short
> followup, with text like this: "You posted that argument before, spammer,
> and you were soundly refuted. See <message id of previous refutation>."

The problem is that finding the previous message requires much more time
than Harrop is worth. Rainer Joswig's troll picture is probably the best
reply, even if the following is also true:

> P.S. He isn't a troll. Trolls do it for fun, spammers do it for money.

Isn't there a similar picture for spammers?

Nicolas

P.S.: What might also help is inventing funny Anti-Harrop signatures which
could be used also in many other messages, such that newbies learn about
him and why his messages are ignored. Come on (especially the native
English speakers), invent something cute!

--

- Hey, what's this frog doing with my leg?
- He's spamming, Sir. He learned it at the Spamming Frog Consultancy.

dix...@gmail.com

unread,
Jul 2, 2007, 5:39:21 AM7/2/07
to
> - Hey, what's this frog doing with my leg?
> - He's spamming, Sir. He learned it at the Spamming Frog Consultancy.

- Mommy, look, what is that big froggy doing on top of the little
froggy?
- Uh... Well, he is just trying to see if their patterns match, honey.
- That's pattern matching? Why don't people do pattern matching too?
- They do when they feel like it and it's convenient, they just don't
need
to let the whole world know they learned to do it.

Nicolas Neuss

unread,
Jul 2, 2007, 7:54:25 AM7/2/07
to
dix...@gmail.com writes:

Wonderful! I think this would be a perfect sig whenever Harrop starts with
pattern matching.

Nicolas

--

- I've heard that Jon Harrop has written a new book.
- Oh? What title? Is it "The Final Countdown: F# against Ocaml"?
- No. It aspires to Knuth's seminal work and is called "The Art of
Newsgroup Spamming".

0 new messages