Difference between revisions of "Haiku"

From HaskellWiki
Jump to: navigation, search
m
m (Various formatting changes)
 
Line 2: Line 2:
 
1st prize in ''Original code poems'' in the [http://www.cs.waikato.ac.nz/studentacm/codepoetry/entries06/entries.html "Waikato ACM Code Poetry Contest 2006"]:
 
1st prize in ''Original code poems'' in the [http://www.cs.waikato.ac.nz/studentacm/codepoetry/entries06/entries.html "Waikato ACM Code Poetry Contest 2006"]:
   
{|style="background-color:light-gray;"
+
:{|style="background-color:#f7f7f7;"
 
|
 
|
 
[[Haskell]] is concise<br>
 
[[Haskell]] is concise<br>
Line 10: Line 10:
   
 
By FMota, preserved in [[Lambdabot]]:
 
By FMota, preserved in [[Lambdabot]]:
<blockquote>Haskell's cryptic form<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Haskell's cryptic form<br>
 
is natural to some folks<br>
 
is natural to some folks<br>
and so is Haiku's</blockquote>
+
and so is Haiku's<br>
  +
|}
   
 
=== Monad haikus ===
 
=== Monad haikus ===
From [[Monad laws#But it doesn't look exactly like an "associative law"...]]:
+
From [[Monad laws#Is that really an "associative law"?|Monad laws - Is that really an "associative law"?]]:
   
<blockquote>
 
  +
:{|style="background-color:#f7f7f7;"
Monad axioms:<br/>
 
  +
|
Kleisli composition forms<br/>
 
  +
[[Monad]] axioms:<br>
a [[category]].
 
  +
Kleisli composition forms<br>
</blockquote>
 
  +
a [[category]].<br>
  +
|}
   
 
=== From #haskell ===
 
=== From #haskell ===
<blockquote>empty list error:<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
empty list error:<br>
 
this elegant program dies<br>
 
this elegant program dies<br>
so very quickly</blockquote>
+
so very quickly<br>
  +
|}
   
<blockquote>less time debugging<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
less time debugging<br>
 
more time downloading your brain<br>
 
more time downloading your brain<br>
to the type system</blockquote>
+
to the type system<br>
  +
|}
   
<blockquote>type checker: "You fool! <br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
type checker: "You fool! <br>
 
What you request makes no sense - <br>
 
What you request makes no sense - <br>
rethink your bad code."</blockquote>
+
rethink your bad code."<br>
  +
|}
   
<blockquote>Incarnation of<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Incarnation of<br>
 
fmap abstract abstraction<br>
 
fmap abstract abstraction<br>
Haskell semantics</blockquote>
+
Haskell semantics<br>
  +
|}
   
<blockquote>GHC compiles<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
GHC compiles<br>
 
lambdas are being lifted<br>
 
lambdas are being lifted<br>
the wind is dying</blockquote>
+
the wind is dying<br>
  +
|}
   
 
By shapr:
 
By shapr:
<blockquote>the snow falls slowly<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
the snow falls slowly<br>
 
the lambdas are lifting -<br>
 
the lambdas are lifting -<br>
weak head normal form.</blockquote>
+
weak head normal form.<br>
  +
|}
   
 
By blackh:
 
By blackh:
<blockquote>Haskell programs are<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Haskell programs are<br>
 
viewed in terms of "data flow";<br>
 
viewed in terms of "data flow";<br>
All state is transient.</blockquote>
+
All state is transient.<br>
  +
|}
   
 
=== From haskell-cafe ===
 
=== From haskell-cafe ===
 
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051532.html Thomas Hartman]:
 
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051532.html Thomas Hartman]:
<blockquote>You come for magic<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
You come for magic<br>
 
silver bullets slaying bugs...<br>
 
silver bullets slaying bugs...<br>
It is only code!</blockquote>
+
It is only code!<br>
  +
|}
   
 
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051538.html Neil Davies]:
 
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051538.html Neil Davies]:
<blockquote>Yesterday it worked.<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Yesterday it worked.<br>
 
Today it is still working<br>
 
Today it is still working<br>
Haskell is like that!</blockquote>
+
Haskell is like that!<br>
  +
|}
   
 
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051575.html Pekka Karjalainen]:
 
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051575.html Pekka Karjalainen]:
<blockquote>Without a kigo<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Without a kigo<br>
 
or requisite syllables,<br>
 
or requisite syllables,<br>
haiku don't typecheck</blockquote>
+
haiku don't typecheck<br>
  +
|}
   
 
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051577.html Niklas Broberg]:
 
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051577.html Niklas Broberg]:
<blockquote>Trapped in a monad,<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Trapped in a monad,<br>
 
use unsafePerformIO!<br>
 
use unsafePerformIO!<br>
Purity tainted...</blockquote>
+
Purity tainted...<br>
  +
|}
   
 
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051585.html Heinrich Apfelmus]:
 
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051585.html Heinrich Apfelmus]:
<haskell>
 
  +
:{|
  +
|<haskell>
 
drop autumn leaves
 
drop autumn leaves
 
until . all . pure . color . Left
 
until . all . pure . color . Left
fail . frost otherwise</haskell>
+
fail . frost otherwise
  +
</haskell>
  +
|}
   
 
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051605.html Richard O'Keefe][http://www.haskell.org/pipermail/haskell-cafe/2008-December/051611.html][http://www.haskell.org/pipermail/haskell-cafe/2008-December/051848.html]:
 
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051605.html Richard O'Keefe][http://www.haskell.org/pipermail/haskell-cafe/2008-December/051611.html][http://www.haskell.org/pipermail/haskell-cafe/2008-December/051848.html]:
<blockquote>Soft rain falls<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Soft rain falls<br>
 
while Haskell infers<br>
 
while Haskell infers<br>
all my types.</blockquote>
+
all my types.<br>
  +
|}
   
<blockquote>In my room<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
In my room<br>
 
&nbsp;&nbsp; Haskell humbles me;<br>
 
&nbsp;&nbsp; Haskell humbles me;<br>
Look, green leaves!</blockquote>
+
Look, green leaves!<br>
  +
|}
   
<blockquote>December buds swell.<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
December buds swell.<br>
 
Categories unlimit<br>
 
Categories unlimit<br>
Haskell I once knew.</blockquote>
+
Haskell I once knew.<br>
  +
|}
   
 
=== From [[The Monad.Reader]] ===
 
=== From [[The Monad.Reader]] ===
 
See [http://haskell.org/sitewiki/images/5/5d/TMR-Issue9.pdf Issue 9] of ''The Monad.Reader''; these haikus by Wouter Swierstra all related to [[Summer of Code]] projects:
 
See [http://haskell.org/sitewiki/images/5/5d/TMR-Issue9.pdf Issue 9] of ''The Monad.Reader''; these haikus by Wouter Swierstra all related to [[Summer of Code]] projects:
<blockquote>Abstracting [[Parsec]]<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Abstracting [[Parsec]]<br>
 
over any input type.<br>
 
over any input type.<br>
The world on a String.</blockquote>
+
The world on a String.<br>
  +
|}
   
<blockquote>Improving [[Hackage]].<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Improving [[Hackage]].<br>
 
Daemons can build your package<br>
 
Daemons can build your package<br>
and [[Haddock]] your code.</blockquote>
+
and [[Haddock]] your code.<br>
  +
|}
   
<blockquote>[[IDEs|Haskell IDE]],<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
[[IDEs|Haskell IDE]],<br>
 
will it ever beat [[Emacs]]?<br>
 
will it ever beat [[Emacs]]?<br>
Only time will tell.</blockquote>
+
Only time will tell.<br>
  +
|}
   
<blockquote>To load code faster<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
To load code faster<br>
 
and save disk space, [[GHC]]<br>
 
and save disk space, [[GHC]]<br>
must share libraries.</blockquote>
+
must share libraries.<br>
  +
|}
   
<blockquote>Binding to libcurl.<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Binding to libcurl.<br>
 
Get your data from the web.<br>
 
Get your data from the web.<br>
Who needs Firefox?</blockquote>
+
Who needs Firefox?<br>
  +
|}
   
<blockquote>A tracer that can't<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
A tracer that can't<br>
 
cope with [[Cabalized]] code is<br>
 
cope with [[Cabalized]] code is<br>
an old [[Hat]], indeed.</blockquote>
+
an old [[Hat]], indeed.<br>
  +
|}
   
 
[[Category:Humor]]
 
[[Category:Humor]]

Latest revision as of 05:56, 26 April 2021

Haskell haikus

1st prize in Original code poems in the "Waikato ACM Code Poetry Contest 2006":

Haskell is concise
Functional well-typed and neat
It is like Haiku

By FMota, preserved in Lambdabot:

Haskell's cryptic form
is natural to some folks
and so is Haiku's

Monad haikus

From Monad laws - Is that really an "associative law"?:

Monad axioms:
Kleisli composition forms
a category.

From #haskell

empty list error:
this elegant program dies
so very quickly

less time debugging
more time downloading your brain
to the type system

type checker: "You fool!
What you request makes no sense -
rethink your bad code."

Incarnation of
fmap abstract abstraction
Haskell semantics

GHC compiles
lambdas are being lifted
the wind is dying

By shapr:

the snow falls slowly
the lambdas are lifting -
weak head normal form.

By blackh:

Haskell programs are
viewed in terms of "data flow";
All state is transient.

From haskell-cafe

By Thomas Hartman:

You come for magic
silver bullets slaying bugs...
It is only code!

By Neil Davies:

Yesterday it worked.
Today it is still working
Haskell is like that!

By Pekka Karjalainen:

Without a kigo
or requisite syllables,
haiku don't typecheck

By Niklas Broberg:

Trapped in a monad,
use unsafePerformIO!
Purity tainted...

By Heinrich Apfelmus:

  drop autumn leaves
  until . all . pure . color . Left
  fail . frost otherwise

By Richard O'Keefe[1][2]:

Soft rain falls
while Haskell infers
all my types.

In my room
   Haskell humbles me;
Look, green leaves!

December buds swell.
Categories unlimit
Haskell I once knew.

From The Monad.Reader

See Issue 9 of The Monad.Reader; these haikus by Wouter Swierstra all related to Summer of Code projects:

Abstracting Parsec
over any input type.
The world on a String.

Improving Hackage.
Daemons can build your package
and Haddock your code.

Haskell IDE,
will it ever beat Emacs?
Only time will tell.

To load code faster
and save disk space, GHC
must share libraries.

Binding to libcurl.
Get your data from the web.
Who needs Firefox?

A tracer that can't
cope with Cabalized code is
an old Hat, indeed.