Difference between revisions of "Haiku"
(→Monad haikus: source) |
m (Various formatting changes) |
||
(21 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
− | == |
+ | ==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"]: |
||
− | From [[Monad laws#But it doesn't look exactly like an "associative law"...]]: |
||
+ | :{|style="background-color:#f7f7f7;" |
||
− | <blockquote> |
||
+ | | |
||
− | Monad axioms:<br/> |
||
+ | [[Haskell]] is concise<br> |
||
− | Kleisli composition forms<br/> |
||
+ | Functional well-typed and neat<br> |
||
− | a category. |
||
+ | It is like Haiku<br> |
||
− | </blockquote> |
||
+ | |} |
||
+ | |||
+ | By FMota, preserved in [[Lambdabot]]: |
||
+ | :{|style="background-color:#f7f7f7;" |
||
+ | | |
||
+ | Haskell's cryptic form<br> |
||
+ | is natural to some folks<br> |
||
+ | and so is Haiku's<br> |
||
+ | |} |
||
+ | |||
+ | === Monad haikus === |
||
+ | 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> |
||
+ | a [[category]].<br> |
||
+ | |} |
||
+ | |||
+ | === From #haskell === |
||
+ | :{|style="background-color:#f7f7f7;" |
||
+ | | |
||
+ | empty list error:<br> |
||
+ | this elegant program dies<br> |
||
+ | so very quickly<br> |
||
+ | |} |
||
+ | |||
+ | :{|style="background-color:#f7f7f7;" |
||
+ | | |
||
+ | less time debugging<br> |
||
+ | more time downloading your brain<br> |
||
+ | to the type system<br> |
||
+ | |} |
||
+ | |||
+ | :{|style="background-color:#f7f7f7;" |
||
+ | | |
||
+ | type checker: "You fool! <br> |
||
+ | What you request makes no sense - <br> |
||
+ | 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 === |
||
+ | 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> |
||
+ | 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> |
||
+ | 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]] |
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?