Difference between revisions of "Haiku"

From HaskellWiki
Jump to navigation Jump to search
m (→‎=: oops)
m (Various formatting changes)
 
(15 intermediate revisions by 6 users not shown)
Line 1: Line 1:
 
==Haskell haikus==
 
==Haskell haikus==
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"]:
  +
<blockquote>Haskell is concise<br>
 
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
[[Haskell]] is concise<br>
 
Functional well-typed and neat<br>
 
Functional well-typed and neat<br>
It is like Haiku</blockquote>
+
It is like Haiku<br>
  +
|}
   
 
By FMota, preserved in [[Lambdabot]]:
 
By FMota, preserved in [[Lambdabot]]:
  +
:{|style="background-color:#f7f7f7;"
<blockquote>Haskell's cryptic form<br>
 
  +
|
  +
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"?]]:
   
  +
:{|style="background-color:#f7f7f7;"
<blockquote>
 
  +
|
Monad axioms:<br/>
 
  +
[[Monad]] axioms:<br>
Kleisli composition forms<br/>
 
  +
Kleisli composition forms<br>
a category.
 
  +
a [[category]].<br>
</blockquote>
 
  +
|}
   
 
=== From #haskell ===
 
=== From #haskell ===
  +
:{|style="background-color:#f7f7f7;"
<blockquote>empty list error:<br>
 
  +
|
  +
empty list error:<br>
 
this elegant program dies<br>
 
this elegant program dies<br>
so very quickly</blockquote>
+
so very quickly<br>
  +
|}
   
  +
:{|style="background-color:#f7f7f7;"
<blockquote>less time debugging<br>
 
  +
|
  +
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>
  +
|}
   
  +
:{|style="background-color:#f7f7f7;"
<blockquote>type checker: "You fool! <br>
 
  +
|
  +
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>
  +
|}
  +
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Incarnation of<br>
  +
fmap abstract abstraction<br>
  +
Haskell semantics<br>
  +
|}
  +
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
GHC compiles<br>
  +
lambdas are being lifted<br>
  +
the wind is dying<br>
  +
|}
  +
  +
By shapr:
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
the snow falls slowly<br>
  +
the lambdas are lifting -<br>
  +
weak head normal form.<br>
  +
|}
  +
  +
By blackh:
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Haskell programs are<br>
  +
viewed in terms of "data flow";<br>
  +
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]:
  +
:{|style="background-color:#f7f7f7;"
<blockquote>You come for magic<br>
 
  +
|
  +
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]:
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Yesterday it worked.<br>
  +
Today it is still working<br>
  +
Haskell is like that!<br>
  +
|}
  +
  +
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051575.html Pekka Karjalainen]:
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Without a kigo<br>
  +
or requisite syllables,<br>
  +
haiku don't typecheck<br>
  +
|}
  +
  +
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051577.html Niklas Broberg]:
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Trapped in a monad,<br>
  +
use unsafePerformIO!<br>
  +
Purity tainted...<br>
  +
|}
  +
  +
By [http://www.haskell.org/pipermail/haskell-cafe/2008-December/051585.html Heinrich Apfelmus]:
  +
:{|
  +
|<haskell>
  +
drop autumn leaves
  +
until . all . pure . color . Left
  +
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]:
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Soft rain falls<br>
  +
while Haskell infers<br>
  +
all my types.<br>
  +
|}
  +
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
In my room<br>
  +
&nbsp;&nbsp; Haskell humbles me;<br>
  +
Look, green leaves!<br>
  +
|}
  +
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
December buds swell.<br>
  +
Categories unlimit<br>
  +
Haskell I once knew.<br>
  +
|}
  +
  +
=== 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:
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Abstracting [[Parsec]]<br>
  +
over any input type.<br>
  +
The world on a String.<br>
  +
|}
  +
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Improving [[Hackage]].<br>
  +
Daemons can build your package<br>
  +
and [[Haddock]] your code.<br>
  +
|}
  +
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
[[IDEs|Haskell IDE]],<br>
  +
will it ever beat [[Emacs]]?<br>
  +
Only time will tell.<br>
  +
|}
  +
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
To load code faster<br>
  +
and save disk space, [[GHC]]<br>
  +
must share libraries.<br>
  +
|}
  +
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
Binding to libcurl.<br>
  +
Get your data from the web.<br>
  +
Who needs Firefox?<br>
  +
|}
  +
  +
:{|style="background-color:#f7f7f7;"
  +
|
  +
A tracer that can't<br>
  +
cope with [[Cabalized]] code is<br>
  +
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.