Haiku: Difference between revisions
m (link) |
m (Various formatting changes) |
||
(2 intermediate revisions by 2 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"]: | ||
:{|style="background-color:#f7f7f7;" | |||
| | |||
[[Haskell]] is concise<br> | |||
Functional well-typed and neat<br> | Functional well-typed and neat<br> | ||
It is like Haiku< | It is like Haiku<br> | ||
|} | |||
By FMota, preserved in [[Lambdabot]]: | By FMota, preserved in [[Lambdabot]]: | ||
:{|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< | and so is Haiku's<br> | ||
|} | |||
=== Monad haikus === | === Monad haikus === | ||
From [[Monad laws# | From [[Monad laws#Is that really an "associative law"?|Monad laws - Is that really an "associative law"?]]: | ||
:{|style="background-color:#f7f7f7;" | |||
Monad axioms:<br | | | ||
Kleisli composition forms<br | [[Monad]] axioms:<br> | ||
a [[category]]. | Kleisli composition forms<br> | ||
< | a [[category]].<br> | ||
|} | |||
=== From #haskell === | === From #haskell === | ||
:{|style="background-color:#f7f7f7;" | |||
| | |||
empty list error:<br> | |||
this elegant program dies<br> | this elegant program dies<br> | ||
so very quickly< | so very quickly<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< | to the type system<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."< | rethink your bad code."<br> | ||
|} | |||
:{|style="background-color:#f7f7f7;" | |||
| | |||
Incarnation of<br> | |||
fmap abstract abstraction<br> | fmap abstract abstraction<br> | ||
Haskell semantics< | Haskell semantics<br> | ||
|} | |||
:{|style="background-color:#f7f7f7;" | |||
| | |||
GHC compiles<br> | |||
lambdas are being lifted<br> | lambdas are being lifted<br> | ||
the wind is dying< | the wind is dying<br> | ||
|} | |||
By shapr: | By shapr: | ||
:{|style="background-color:#f7f7f7;" | |||
| | |||
the snow falls slowly<br> | |||
the lambdas are lifting -<br> | the lambdas are lifting -<br> | ||
weak head normal form.< | weak head normal form.<br> | ||
|} | |||
By blackh: | By blackh: | ||
:{|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.< | 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;" | |||
| | |||
You come for magic<br> | |||
silver bullets slaying bugs...<br> | silver bullets slaying bugs...<br> | ||
It is only code!< | 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]: | ||
:{|style="background-color:#f7f7f7;" | |||
| | |||
Yesterday it worked.<br> | |||
Today it is still working<br> | Today it is still working<br> | ||
Haskell is like that!< | 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]: | ||
:{|style="background-color:#f7f7f7;" | |||
| | |||
Without a kigo<br> | |||
or requisite syllables,<br> | or requisite syllables,<br> | ||
haiku don't typecheck< | 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]: | ||
:{|style="background-color:#f7f7f7;" | |||
| | |||
Trapped in a monad,<br> | |||
use unsafePerformIO!<br> | use unsafePerformIO!<br> | ||
Purity tainted...< | 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]: | ||
:{|style="background-color:#f7f7f7;" | |||
| | |||
Soft rain falls<br> | |||
while Haskell infers<br> | while Haskell infers<br> | ||
all my types.< | all my types.<br> | ||
|} | |||
:{|style="background-color:#f7f7f7;" | |||
| | |||
In my room<br> | |||
Haskell humbles me;<br> | Haskell humbles me;<br> | ||
Look, green leaves!< | Look, green leaves!<br> | ||
|} | |||
:{|style="background-color:#f7f7f7;" | |||
| | |||
December buds swell.<br> | |||
Categories unlimit<br> | Categories unlimit<br> | ||
Haskell I once knew.< | 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: | ||
:{|style="background-color:#f7f7f7;" | |||
| | |||
Abstracting [[Parsec]]<br> | |||
over any input type.<br> | over any input type.<br> | ||
The world on a String.< | The world on a String.<br> | ||
|} | |||
:{|style="background-color:#f7f7f7;" | |||
| | |||
Improving [[Hackage]].<br> | |||
Daemons can build your package<br> | Daemons can build your package<br> | ||
and [[Haddock]] your code.< | and [[Haddock]] your code.<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.< | Only time will tell.<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.< | must share libraries.<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?< | Who needs Firefox?<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.< | 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"?:
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!
Without a kigo
or requisite syllables,
haiku don't typecheck
By Niklas Broberg:
Trapped in a monad,
use unsafePerformIO!
Purity tainted...
drop autumn leaves until . all . pure . color . Left fail . frost otherwise
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.
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?