Personal tools

Humor/Poetry

From HaskellWiki

< Humor(Difference between revisions)
Jump to: navigation, search
(Reinstated poem by Ketil Malde, since I have obtained the author's permission to post it.)
m (Revised format of dates for poems by Benjamin L. Russell and Ketil Malde to include the day of week.)
Line 62: Line 62:
 
Subject: Ode from a Haskeller to a Schemer [Was: Re: Santana on my evil ways]
 
Subject: Ode from a Haskeller to a Schemer [Was: Re: Santana on my evil ways]
 
Newsgroups: gmane.comp.lang.haskell.cafe
 
Newsgroups: gmane.comp.lang.haskell.cafe
Date: 2008-07-07 06:26:37 GMT
+
Date: Mon Jul 7 02:26:37 EDT 2008
 
 
 
Ode from a Haskeller to a Schemer
 
Ode from a Haskeller to a Schemer
Line 93: Line 93:
 
Subject: Reading A Monad Tutorial (Re: [Haskell-cafe] Ode from a Haskeller to a Schemer)
 
Subject: Reading A Monad Tutorial (Re: [Haskell-cafe] Ode from a Haskeller to a Schemer)
 
Newsgroups: gmane.comp.lang.haskell.cafe
 
Newsgroups: gmane.comp.lang.haskell.cafe
Date: 2008-07-07 08:21:33 GMT
+
Date: Mon Jul 7 04:21:33 EDT 2008
   
 
(With apologies to Queen.)
 
(With apologies to Queen.)

Revision as of 02:38, 9 February 2009

1 A Haskell Lover's Plea

From haskell@CS.YALE.EDU  Thu Mar 16 18:03:34 1995
From: dsmith@lucy.cs.waikato.ac.nz
Subject: A Haskell Lover's Plea
         A Haskell Lover's Plea 
Why should I renounce for you, dear Haskell,
My much yearned for side-effects?
Why should I face the software dragons 
Without my weapon, my manly spear of destruction?
They call you non-strict, oh so elegant and pure Ariel.
Yet side-effect celibacy is surely severe.
  Your flesh is too weak, you brutish beast.
  The tarpit demons of software hell await you!
  This sinful habit in which you indulge
  Does more harm than good. 
  Restrain yourself! And you too will see
  The wondrous and refined joys of referential transparency!
Alas, I can do without goto, without call/cc.
But sans side-effects, I am lost and forlorn, can't you see?
Oh, lady fairer yet than admirable Miranda (tm),
Scheme's prolix, parenthetical tedium
Is no match for your elegant syntax. What's more,
Your list comprehensions outshine even Prolog for sure...
   Ah, flatter me not, you low-spirited Caliban!
   Do you not know what advantages await
   Those who renounce destructive update?
   Start with an immaculate high-level specification,
   Throw in some algebraic code transformation.
   Soon you will have a provably correct and maintainable implementation.
Show mercy on mere mortals like me!
How I dream still of the efficient pleasures of pointer manipulation!
How I too wish to mutate memory with thoughts born of von Neumann earthiness!
Relent! Relent! Let me have my assignment, my printf, my gensym.
Let me fulfill my destructive impulses.
Let me set bang. Let me update. Let me assign. Let me mutate.
   Fear not, lowly beast, I have heard your pleas.
   To satisfy your low-level desire
   I'll give you monads, linear types, MADTs,
   Even single-threaded polymorphic lambda calculi.
   My beauty may suffer, still I will aspire
   To let you do (within typeful limits) what you please.
Rejoice!  Rejoice!  I'm free! I'm free!
The best of both worlds is mine at last.
Oh, infinite progeny of Church, Hope, and ML,
I curry favor not when I say:
Scan me right, fold me left, 
Lazy lady of many shapes, you've got class.
     Don Smith (dsmith@cs.waikato.ac.nz)


2 Ode from a Haskeller to a Schemer

From: Benjamin L. Russell <DekuDekuplex <at> Yahoo.com>
Subject: Ode from a Haskeller to a Schemer [Was: Re: Santana on my evil ways]
Newsgroups: gmane.comp.lang.haskell.cafe
Date: Mon Jul 7 02:26:37 EDT 2008

Ode from a Haskeller to a Schemer

Recursion was my curse,
'Till mapping came to fame,
Parens to tail-recurse,
Fade, monads are to blame.

Let, let*, or letrec?
They were my bar and foo.
Now, monads have my neck:
What shall there be to do?

Recurse or iterate?
The processes, too late!
To map, fold, or filter:  
That is the question, sir.

In Scheme, I threw a fit:
Eval:  how to write it?
In Haskell, no more wait:
Reactive-animate!

-- by Benjamin L. Russell, July 7, 2008 (Tokyo time)


3 Reading A Monad Tutorial

From: Ketil Malde <ketil <at> malde.org>
Subject: Reading A Monad Tutorial (Re: [Haskell-cafe] Ode from a Haskeller to a Schemer)
Newsgroups: gmane.comp.lang.haskell.cafe
Date: Mon Jul 7 04:21:33 EDT 2008
(With apologies to Queen.)

Is this the RealWorld#?
Is this I/O I see?
Caught in a monad - 
No escape back to purity

Open a file, it wipes out my smile to see
I'm just a programmer, don't need a Ph.D
I'm easy come, easy go
Don't need this high brow
weird monadic action, no real reaction
for me, from G-HC

Hey man, I just found out that
it is easy to achieve
using unsafeInterleave
and unsafe...PerformIO
but people tell me I should let those go
Oh man, no-o-o
I'm about to start to cry
If I can't make this stuff compile tomorrow
I will just carry on
Nothing really matters.

Too late - 'cause I got it now
there are monads all around
IO, State and lists abound
It's easy, like those people say
but my program got abstracted all away!
Maybe - o o o, 
It's a monad too, I know
Why should I use another language at all?

-k