Difference between revisions of "Blog articles"
Jump to navigation
Jump to search
DonStewart (talk | contribs) |
DonStewart (talk | contribs) (lots more articles, back to Sep 06) |
||
Line 1: | Line 1: | ||
− | |||
Many areas of Haskell have been explored in the form of blog posts. This page |
Many areas of Haskell have been explored in the form of blog posts. This page |
||
collects the best of those articles from across the web. |
collects the best of those articles from across the web. |
||
Line 19: | Line 18: | ||
* [http://scienceblogs.com/goodmath/2006/11/haskell_preliminaries_implemen.php Haskell Preliminaries: Implementations and Tools] |
* [http://scienceblogs.com/goodmath/2006/11/haskell_preliminaries_implemen.php Haskell Preliminaries: Implementations and Tools] |
||
* [http://scienceblogs.com/goodmath/2006/11/simple_functions_in_haskell_1.php Simple Functions in Haskell] |
* [http://scienceblogs.com/goodmath/2006/11/simple_functions_in_haskell_1.php Simple Functions in Haskell] |
||
⚫ | |||
=== First impressions === |
=== First impressions === |
||
Line 27: | Line 27: | ||
* [http://blogs.nubgames.com/code/?p=16 Comparing Gzip Code Reduction] |
* [http://blogs.nubgames.com/code/?p=16 Comparing Gzip Code Reduction] |
||
* [http://www.stonecode.org/blog/?p=101 Haskell, first impressions (with sexy results)] |
* [http://www.stonecode.org/blog/?p=101 Haskell, first impressions (with sexy results)] |
||
+ | * [http://clemens.endorphin.org/weblog/archives/2006-06.shtml#e2006-06-23T09_16_52.txt The beauty of Haskell] |
||
=== Comparisons to other languages === |
=== Comparisons to other languages === |
||
Line 36: | Line 37: | ||
* [http://meta-meta.blogspot.com/2006/12/monads-in-ruby-part-1-identity.html Monads in Ruby Part 1: Identity] |
* [http://meta-meta.blogspot.com/2006/12/monads-in-ruby-part-1-identity.html Monads in Ruby Part 1: Identity] |
||
* [http://meta-meta.blogspot.com/2006/12/monads-in-ruby-part-15-identity.html Monads In Ruby Part 1.5: Identity] |
* [http://meta-meta.blogspot.com/2006/12/monads-in-ruby-part-15-identity.html Monads In Ruby Part 1.5: Identity] |
||
+ | * [http://rushcheck.rubyforge.org/ RushCheck, a lightweight random testing tool for Ruby similar to QuickCheck] |
||
==== Java ==== |
==== Java ==== |
||
Line 42: | Line 44: | ||
* [http://syntaxfree.wordpress.com/2006/12/23/et-tu-brute/ Type classes in Java] |
* [http://syntaxfree.wordpress.com/2006/12/23/et-tu-brute/ Type classes in Java] |
||
* [http://www.javac.info/closures-v03.html Closures and bottom for Java] |
* [http://www.javac.info/closures-v03.html Closures and bottom for Java] |
||
+ | * [http://jpmoresmau.blogspot.com/2006/12/in-haskell-you-can-define-infinite.html An infinite list in Java] |
||
+ | * [http://blog.tmorris.net/maybe-monad-in-java/ Maybe monad in Java] |
||
+ | |||
+ | ==== Eiffel ==== |
||
+ | |||
+ | * [http://teameiffel.blogspot.com/2006/11/type-system-of-ecma-eiffel.html The type system of ECMA Eiffel (modelled in Haskell)] |
||
==== Javascript ==== |
==== Javascript ==== |
||
Line 50: | Line 58: | ||
* [http://jaortega.wordpress.com/2007/01/29/the-functional-c-programmer/ The functional C programmer] |
* [http://jaortega.wordpress.com/2007/01/29/the-functional-c-programmer/ The functional C programmer] |
||
+ | |||
+ | ==== C# ==== |
||
+ | |||
+ | * [http://www.developer.com/net/csharp/article.php/3598381 The New Lambda Expressions Feature in C# 3.0] |
||
==== Scala ==== |
==== Scala ==== |
||
Line 58: | Line 70: | ||
* [http://wiki.python.org/moin/PythonVsHaskell Haskell versus Python] |
* [http://wiki.python.org/moin/PythonVsHaskell Haskell versus Python] |
||
+ | * [http://www.kuarepoti-dju.net/index.php?p=86 Using Haskell in Python: haskellembed] |
||
+ | * [http://lukeplant.me.uk/blog.php?id=1107301643 Understanding Monads Via Python List Comprehensions] |
||
==== Scheme ==== |
==== Scheme ==== |
||
* [http://programming.reddit.com/goto?id=nq1k Haskell versus Scheme] |
* [http://programming.reddit.com/goto?id=nq1k Haskell versus Scheme] |
||
+ | |||
+ | ==== Factor ==== |
||
+ | |||
+ | * [http://www.bluishcoder.co.nz/2006/10/factor-parser-combinator-example.html Haskell-style parser combinators in Factor: s-expression reader] |
||
==== Lisp ==== |
==== Lisp ==== |
||
* [http://www.defmacro.org/ramblings/lisp-in-haskell.html Writing lisp in Haskell] |
* [http://www.defmacro.org/ramblings/lisp-in-haskell.html Writing lisp in Haskell] |
||
+ | |||
+ | ==== Lua ==== |
||
+ | |||
+ | * [http://salimma.livejournal.com/72850.html Lazy streams for Lua] |
||
=== Functional programming === |
=== Functional programming === |
||
⚫ | |||
* [http://www.yomi.at/archive/2007/02/115 A fold-like procedure in C] |
* [http://www.yomi.at/archive/2007/02/115 A fold-like procedure in C] |
||
* [http://notes-on-haskell.blogspot.com/2007/02/whats-wrong-with-for-loop.html What's wrong with for loops] |
* [http://notes-on-haskell.blogspot.com/2007/02/whats-wrong-with-for-loop.html What's wrong with for loops] |
||
Line 75: | Line 96: | ||
* [http://blogs.nubgames.com/code/?p=4 Liberating Myself from the von Neumann Style] |
* [http://blogs.nubgames.com/code/?p=4 Liberating Myself from the von Neumann Style] |
||
* [http://josefsblog.blogspot.com/2007/01/programming-productivity-and.html Programming Productivity and Programming Languages] |
* [http://josefsblog.blogspot.com/2007/01/programming-productivity-and.html Programming Productivity and Programming Languages] |
||
⚫ | |||
* [http://channel9.msdn.com/ShowPost.aspx?PostID=261386#261386 Haskell - A valuable language] |
* [http://channel9.msdn.com/ShowPost.aspx?PostID=261386#261386 Haskell - A valuable language] |
||
* [http://www.pbell.com/index.cfm/2006/11/26/On-Functional-Programming On Functional Programming] |
* [http://www.pbell.com/index.cfm/2006/11/26/On-Functional-Programming On Functional Programming] |
||
+ | * [http://cogito.blogthing.com/2006/12/06/no-silver-bullet-and-functional-programming/ Functional programming is a silver bullet] |
||
⚫ | |||
+ | * [http://cogito.blogthing.com/2006/12/08/silverbulletsincoming/ Silver Bullets Incoming!] |
||
+ | * [http://dynamic.ropine.com/yesh/article/computers-were-invented-to-keep-track-of-boring-things Computers were invented to keep track of boring things] |
||
+ | * [http://www.defmacro.org/ramblings/fp.html Functional programming for the rest of us] |
||
+ | * [http://www.gaetanocaruana.com/2006/10/02/what-is-so-cool-about-functional-programming/ What is so cool about Functional Programming?] |
||
=== Programming exercises === |
=== Programming exercises === |
||
Line 87: | Line 111: | ||
* [http://vandreev.wordpress.com/2006/12/24/quick-and-dirty-theorem-prover/ A quick and dirty theorem prover in Haskell] |
* [http://vandreev.wordpress.com/2006/12/24/quick-and-dirty-theorem-prover/ A quick and dirty theorem prover in Haskell] |
||
* [http://www.joachim-breitner.de/blog/archives/210-FourFours-in-Haskell.html FourFours in Haskell] |
* [http://www.joachim-breitner.de/blog/archives/210-FourFours-in-Haskell.html FourFours in Haskell] |
||
+ | * [http://gimbo.org.uk/archives/2006/12/#001887 Fibonacci series one-liner in Haskell] |
||
+ | * [http://praisecurseandrecurse.blogspot.com/2006/12/dot-matrix-printhead-haskell-toy.html The Dot-Matrix Printhead: a Haskell Toy] |
||
+ | * [http://praisecurseandrecurse.blogspot.com/2006/12/revised-dot-matrix-printhead.html The Revised Dot-Matrix Printhead] |
||
+ | * [http://mult.ifario.us/articles/2006/12/18/secret-santas-in-haskell-i-preliminaries Secret Santas in Haskell I: Preliminaries] |
||
+ | * [http://mult.ifario.us/articles/2006/12/18/secret-santas-in-haskell-ii-orbits-and-lists Secret Santas in Haskell II: Orbits and Lists] |
||
+ | * [http://alangloria.blogspot.com/2006/11/okay.html Diff in Haskell] |
||
+ | * [http://kenta.blogspot.com/2006/11/eratosthenes-sieve.html Eratosthenes sieve] |
||
+ | * [http://sancho-ex.livejournal.com/7056.html Overlap function in Haskell for rectangles] |
||
+ | * [http://blog.moertel.com/articles/2006/10/31/introductory-haskell-solving-the-sorting-it-out-kata Introductory Haskell: Solving the Sorting-It-Out Kata] |
||
+ | * [http://www.xprogramming.com/xpmag/dbcHaskellBowling.htm Haskell Bowling] |
||
+ | * [http://jcreigh.blogspot.com/2006/11/simple-rpn-calculator-in-haskell.html A Simple RPN Calculator in Haskell] |
||
+ | * [http://jpmoresmau.blogspot.com/2006/11/my-first-haskell-adventure-game.html My first Haskell adventure game!] |
||
+ | * [http://mult.ifario.us/articles/2006/10/25/solitaire-cipher-in-haskell Software Cipher] |
||
=== Laziness === |
=== Laziness === |
||
Line 92: | Line 129: | ||
* [http://blog.interlinked.org/tutorials/haskell_laziness.html Haskell laziness] |
* [http://blog.interlinked.org/tutorials/haskell_laziness.html Haskell laziness] |
||
* [http://mult.ifario.us/articles/2007/01/25/laziness-and-fizzbuzz-in-haskell Laziness and fizzbuzz in Haskell] |
* [http://mult.ifario.us/articles/2007/01/25/laziness-and-fizzbuzz-in-haskell Laziness and fizzbuzz in Haskell] |
||
+ | * [http://community.livejournal.com/evan_tech/206250.html Lazy lists as iterators] |
||
=== IO === |
=== IO === |
||
Line 101: | Line 139: | ||
* [http://therning.org/magnus/archives/228 Listing files in Haskell] |
* [http://therning.org/magnus/archives/228 Listing files in Haskell] |
||
* [http://journal.conal.net/#%5B%5Bseparating%20IO%20from%20logic%20--%20example%5D%5D separating IO from logic -- example] |
* [http://journal.conal.net/#%5B%5Bseparating%20IO%20from%20logic%20--%20example%5D%5D separating IO from logic -- example] |
||
+ | * Programming Haskell |
||
+ | ** [http://cgi.cse.unsw.edu.au/~dons/blog/2006/12/16#programming-haskell-intro Programming Haskell: part 1] |
||
+ | ** [http://www.cse.unsw.edu.au/~dons/blog/2006/12/17#programming-haskell-part-2 Programming Haskell: part 2] |
||
+ | ** [http://cgi.cse.unsw.edu.au/~dons/blog/2006/12/18#ph-3 Programming Haskell: part 3] |
||
+ | * [http://blog.kfish.org/software/haskell/intro-haskell-unix.html Introductory Haskell Programming in the UNIX Environment] |
||
=== Network === |
=== Network === |
||
Line 106: | Line 149: | ||
* [http://blog.nurd.se/hype/?p=30 An IRC client/server in Haskell] |
* [http://blog.nurd.se/hype/?p=30 An IRC client/server in Haskell] |
||
* [http://sequence.complete.org/node/258 Simple STM TCP server] |
* [http://sequence.complete.org/node/258 Simple STM TCP server] |
||
+ | * [http://haskell.org/haskellwiki/Roll_your_own_IRC_bot Roll your own Haskell IRC bot] |
||
=== Concurrency === |
=== Concurrency === |
||
Line 123: | Line 167: | ||
* [http://sequence.complete.org/node/231 Parser with Writer monad] |
* [http://sequence.complete.org/node/231 Parser with Writer monad] |
||
* [http://a-preponderance-of-pondering.blogspot.com/2006/12/parser-combinators.html Parser combinators] |
* [http://a-preponderance-of-pondering.blogspot.com/2006/12/parser-combinators.html Parser combinators] |
||
+ | * [http://jpmoresmau.blogspot.com/2006/12/adventures-in-haskell-parsing-game.html Adventures in Haskell: parsing the game world] |
||
+ | * [http://jpmoresmau.blogspot.com/2006/12/adventures-in-haskell-parsec-magic.html Adventures in Haskell: the Parsec magic weapon] |
||
+ | * [http://www.knowing.net/PermaLink,guid,0cc63c2f-e167-406d-a00e-4f390e9494f6.aspx Explicit Typing, Trail Blazing, and Packrat Parsing] |
||
− | === Monads |
+ | === Monads === |
* [http://www.serpentine.com/blog/2007/01/09/haskell-bootstrapping-into-a-clue-about-monads/ Haskell: bootstrapping into a clue about monads] |
* [http://www.serpentine.com/blog/2007/01/09/haskell-bootstrapping-into-a-clue-about-monads/ Haskell: bootstrapping into a clue about monads] |
||
Line 135: | Line 182: | ||
* [http://scienceblogs.com/goodmath/2007/01/haskell_a_first_step_into_mona_1.php A First Step Into Monads] |
* [http://scienceblogs.com/goodmath/2007/01/haskell_a_first_step_into_mona_1.php A First Step Into Monads] |
||
* [http://scienceblogs.com/goodmath/2007/01/more_monads_stateful_programmi_1.php More Monads: Stateful Programming] |
* [http://scienceblogs.com/goodmath/2007/01/more_monads_stateful_programmi_1.php More Monads: Stateful Programming] |
||
+ | * [http://www.alpheccar.org/en/posts/show/61 A newbie in Haskell land : The (->) monad] |
||
+ | * [http://cgi.cse.unsw.edu.au/~dons/blog/2006/12/11#interpreters-with-reader-monads Quick interpreters with the Reader monad] |
||
+ | * [http://cale.yi.org/index.php/The_Monad_Laws The monad laws] |
||
+ | * [http://sigfpe.blogspot.com/2006/11/variable-substitution-gives.html Variable substitution gives a ... monad] |
||
+ | * [http://sigfpe.blogspot.com/2006/10/monads-field-guide.html Monads: a field guide] |
||
==== Monad transformers ==== |
==== Monad transformers ==== |
||
Line 140: | Line 192: | ||
* [http://conway.rutgers.edu/~ccshan/wiki/blog/posts/Monad_transformers.html A twisted history of monad transformers] |
* [http://conway.rutgers.edu/~ccshan/wiki/blog/posts/Monad_transformers.html A twisted history of monad transformers] |
||
* [http://cale.yi.org/index.php/How_To_Use_Monad_Transformers How To Use Monad Transformers] |
* [http://cale.yi.org/index.php/How_To_Use_Monad_Transformers How To Use Monad Transformers] |
||
+ | * [http://sigfpe.blogspot.com/2006/09/local-and-global-side-effects-with.html Local and global side effects with monad transformers] |
||
+ | |||
+ | ==== Arrows ==== |
||
+ | |||
+ | * [http://kpreid.livejournal.com/7351.html Concatenative programming in Haskell's Arrows] |
||
==== Comonads ==== |
==== Comonads ==== |
||
Line 153: | Line 210: | ||
=== Types === |
=== Types === |
||
+ | * [http://blog.moertel.com/articles/2006/10/18/a-type-based-solution-to-the-strings-problem A type-based solution to the 'strings problem'] |
||
* [http://www.cs.nott.ac.uk/~pni/Papers/Notes/GADTs.html Generalised Algebraic Data Types, Phantom Types, and Dependent Types] |
* [http://www.cs.nott.ac.uk/~pni/Papers/Notes/GADTs.html Generalised Algebraic Data Types, Phantom Types, and Dependent Types] |
||
* [http://scienceblogs.com/goodmath/2006/12/functions_types_function_types_1.php Functions, Types, Function Types, and Type Inference] |
* [http://scienceblogs.com/goodmath/2006/12/functions_types_function_types_1.php Functions, Types, Function Types, and Type Inference] |
||
Line 166: | Line 224: | ||
* [http://www.randomhacks.net/articles/2007/02/08/haskell-queues-without-pointers Queues without pointers] |
* [http://www.randomhacks.net/articles/2007/02/08/haskell-queues-without-pointers Queues without pointers] |
||
+ | * [http://scienceblogs.com/goodmath/2006/12/a_tree_grows_up_in_haskell_bui_1.php A Tree Grows Up in Haskell: Building a Dictionary Type] |
||
+ | * [http://progexpr.blogspot.com/2006/11/haskell-stacks-two-different-ways.html Haskell Stacks : Two Different Ways] |
||
− | === |
+ | === Combinators === |
⚫ | |||
⚫ | |||
+ | * [http://cale.yi.org/index.php/Fold_Diagrams Fold diagrams] |
||
+ | * [http://monad.carnalreason.org/wordpress/?p=19 foldr, foldl] |
||
+ | |||
+ | === GUIs === |
||
+ | |||
+ | * [http://j-van-thiel.speedlinq.nl/EddyAhmed/GladeGtk2Hs.html Developing Gnome Apps with Glade] |
||
+ | |||
+ | === Web and XML === |
||
+ | |||
+ | * [http://cale.yi.org/index.php/HRSS A simple RSS aggregator in 50 lines of Haskell using HXT] |
||
* [http://programming.reddit.com/goto?id=139vk Haskell and Web Applications] |
* [http://programming.reddit.com/goto?id=139vk Haskell and Web Applications] |
||
* [http://programming.reddit.com/goto?id=12a6a Ruby and Haskell: write your Rails backend code in Haskell instead of C] |
* [http://programming.reddit.com/goto?id=12a6a Ruby and Haskell: write your Rails backend code in Haskell instead of C] |
||
Line 174: | Line 246: | ||
** [http://blogs.nubgames.com/code/?p=18 Part 0 Introduction] |
** [http://blogs.nubgames.com/code/?p=18 Part 0 Introduction] |
||
** [http://blogs.nubgames.com/code/?p=19 Part 1 Maybe and List] |
** [http://blogs.nubgames.com/code/?p=19 Part 1 Maybe and List] |
||
+ | * [http://haskell-web.blogspot.com/2006/12/some-ideas-in-progress_13.html Haskell and the web: some ideas in progress] |
||
+ | * [http://haskell-web.blogspot.com/2006/11/search-engine-written-in-haskell.html A search engine (core) written in Haskell] |
||
+ | * [http://haskell-web.blogspot.com/2006/11/transactional-cache-for-haskell.html Haskell Transactional Cache] |
||
=== Maths === |
=== Maths === |
||
Line 203: | Line 278: | ||
* [http://japple.blogspot.com/2007/02/countable-ordinals-in-haskell.html Countable Ordinals in Haskell] |
* [http://japple.blogspot.com/2007/02/countable-ordinals-in-haskell.html Countable Ordinals in Haskell] |
||
* [http://www.quetzal.com/sambangu/2006/12/polynomials-as-numbers Polynomials as numbers] |
* [http://www.quetzal.com/sambangu/2006/12/polynomials-as-numbers Polynomials as numbers] |
||
+ | * The Division Bell |
||
+ | ** [http://praisecurseandrecurse.blogspot.com/2006/12/division-bell-tolls-for-me.html Part One] |
||
+ | ** [http://praisecurseandrecurse.blogspot.com/2006/12/division-bell-tolls-for-me-part-two.html Part Two] |
||
+ | ** [http://praisecurseandrecurse.blogspot.com/2006/12/division-bell-tolls-for-me-part-three.html Part Three] |
||
+ | ** [http://praisecurseandrecurse.blogspot.com/2006/12/division-bell-tolls-for-me-part-four.html Part Four (Conclusion)] |
||
+ | ** [http://praisecurseandrecurse.blogspot.com/2006/12/divisive-aftermath.html The Divisive Aftermath] |
||
+ | * [http://www.alpheccar.org/en/posts/show/57 Haskell, PDF and penrose tilings] |
||
+ | |||
+ | === Testing === |
||
+ | |||
+ | * [http://blogs.teamb.com/craigstuntz/archive/2006/12/08/UnitTestingAndTypeSafety.aspx On Unit Testing and Type Safety] |
||
+ | * [http://chiralos.blogspot.com/2006/11/testing-testing.html Testing ... testing] |
||
=== Regular expressions === |
=== Regular expressions === |
||
Line 216: | Line 303: | ||
* [http://www.serpentine.com/blog/2007/02/20/haskell-cabal-now-with-extra-crunchy-rpm-goodness/ Cabal and rpms] |
* [http://www.serpentine.com/blog/2007/02/20/haskell-cabal-now-with-extra-crunchy-rpm-goodness/ Cabal and rpms] |
||
* [http://www.serpentine.com/blog/2007/01/05/getting-started-with-installing-third-party-haskell-packages/ Getting started with installing third-party Haskell packages] |
* [http://www.serpentine.com/blog/2007/01/05/getting-started-with-installing-third-party-haskell-packages/ Getting started with installing third-party Haskell packages] |
||
+ | * [http://www.cse.unsw.edu.au/~dons/blog/2006/12/11#release-a-library-today The lambda revolution: how you can help] |
||
+ | * [http://pupeno.com/blog/the-lambda-revolution-episode-v-the-deb-strikes-back The lambda revolution, Episode V, the deb strikes back] |
||
+ | * [http://sambangu.blogspot.com/2006/12/questions-on-haskell-style-and Questions on Haskell Style (and Polynomials redux)] |
||
=== Hardware description languages === |
=== Hardware description languages === |
Revision as of 09:26, 1 March 2007
Many areas of Haskell have been explored in the form of blog posts. This page collects the best of those articles from across the web.
Introductions to Haskell
- On Haskell, Intuition And Expressive Power
- Haskell: Raising the bar
- Learning the Haskell programming language
- On learning Haskell
- My evolution as a Haskell programmer
- Why its hard for imperative programmers to learn Haskell
- Flirting with Functional Programming
- Building a Firewall Against Complexity
- Haskell, bondage-and-discipline and separation-of-concerns programming
- Type systems as safety belts
- Haskell introduction for beginners
- Haskell Basics
- Haskell Preliminaries: Implementations and Tools
- Simple Functions in Haskell
- Reconsidering my approach to learning Haskell
First impressions
- Haskell First Impressions
- One month in Haskell
- Thoughts on one week in Haskell
- Comparing Gzip Code Reduction
- Haskell, first impressions (with sexy results)
- The beauty of Haskell
Comparisons to other languages
Ruby
- Ruby vs Haskell: choose what works
- Haskell: open secret in Ruby land
- Monads in Ruby Part 1: Identity
- Monads In Ruby Part 1.5: Identity
- RushCheck, a lightweight random testing tool for Ruby similar to QuickCheck
Java
- More Haskell in Java 7 or 8?
- Type classes in Java
- Closures and bottom for Java
- An infinite list in Java
- Maybe monad in Java
Eiffel
Javascript
C
C#
Scala
Python
- Haskell versus Python
- Using Haskell in Python: haskellembed
- Understanding Monads Via Python List Comprehensions
Scheme
Factor
Lisp
Lua
Functional programming
- A fold-like procedure in C
- What's wrong with for loops
- More on what's wrong with for loops
- Liberating Myself from the von Neumann Style
- Programming Productivity and Programming Languages
- Haskell - A valuable language
- On Functional Programming
- Functional programming is a silver bullet
- Silver Bullets Incoming!
- Computers were invented to keep track of boring things
- Functional programming for the rest of us
- What is so cool about Functional Programming?
Programming exercises
- Secret Santas in Haskell III: Lather, Rinse, Repeat 1
- Using Bayesian filtering instead of 'if' in Haskell
- Tying Knots Generically
- A quick and dirty theorem prover in Haskell
- FourFours in Haskell
- Fibonacci series one-liner in Haskell
- The Dot-Matrix Printhead: a Haskell Toy
- The Revised Dot-Matrix Printhead
- Secret Santas in Haskell I: Preliminaries
- Secret Santas in Haskell II: Orbits and Lists
- Diff in Haskell
- Eratosthenes sieve
- Overlap function in Haskell for rectangles
- Introductory Haskell: Solving the Sorting-It-Out Kata
- Haskell Bowling
- A Simple RPN Calculator in Haskell
- My first Haskell adventure game!
- Software Cipher
Laziness
IO
- Haskell I/O for imperative programmers
- Simple Unix Tools in Elegant Haskell
- A filesystem tree printer
- Introductory console IO in Haskell
- Listing files in Haskell
- separating IO from logic -- example
- Programming Haskell
- Introductory Haskell Programming in the UNIX Environment
Network
Concurrency
Performance
Parsing
- Config file parsing
- Playing fast and loose with Parsec for parsing in Haskell
- Combinator parsing
- Interesting parsers in Haskell
- Parser with Writer monad
- Parser combinators
- Adventures in Haskell: parsing the game world
- Adventures in Haskell: the Parsec magic weapon
- Explicit Typing, Trail Blazing, and Packrat Parsing
Monads
- Haskell: bootstrapping into a clue about monads
- Monads for vector spaces, probability and quantum mechanics pt. I
- Monads work because they have a tight interface
- The theory of monads
- The monad behind every zipper
- More on Haskell, Side Effects and Code Reuse
- Monads
- A First Step Into Monads
- More Monads: Stateful Programming
- A newbie in Haskell land : The (->) monad
- Quick interpreters with the Reader monad
- The monad laws
- Variable substitution gives a ... monad
- Monads: a field guide
Monad transformers
- A twisted history of monad transformers
- How To Use Monad Transformers
- Local and global side effects with monad transformers
Arrows
Comonads
Error handling and exceptions
Types
- A type-based solution to the 'strings problem'
- Generalised Algebraic Data Types, Phantom Types, and Dependent Types
- Functions, Types, Function Types, and Type Inference
- Building Datatypes in Haskell (part 1)
- Rank-2 polymorphism is a strange thing
Type classes
Data structures
- Queues without pointers
- A Tree Grows Up in Haskell: Building a Dictionary Type
- Haskell Stacks : Two Different Ways
Combinators
GUIs
Web and XML
- A simple RSS aggregator in 50 lines of Haskell using HXT
- Haskell and Web Applications
- Ruby and Haskell: write your Rails backend code in Haskell instead of C
- Writing a Simple Search Engine in Haskell
- Haskell and the web: some ideas in progress
- A search engine (core) written in Haskell
- Haskell Transactional Cache
Maths
- Learn Maths with Haskell
- Why isn't ListT list a monad?
- Reverse Engineering Machines with the Yoneda Lemma
- Variable substitution gives a...
- From Lb's Theorem to Spreadsheet Evaluation
- Games, Strategies and the Self-Composition of the List Monad.
- Practical Synthetic Differential Geometry
- More Low Cost Geometric Algebra
- Algebraic Topology in Haskell
- Infinitesimal Types
- Geometric Algebra for Free!
- Eleven Reasons to use Haskell as a Mathematician
- Laws of Form: An Opinion
- A-algebras and group cohomology
- Prototyping thought
- Computational Group Theory in Haskell
- Carry bits and group cohomology
- Why Haskell?
- Programs are Proofs: Models and Types in Lambda Calculus
- Polynomials as numbers
- Non-standard analysis, automatic differentiation, Haskell
- Haskell for Maths: commutative algebra, combinatorics, number theory, and group theory
- Two-dimensional spatial hashing with space-filling curves
- Arithemtic coding in Haskell
- Countable Ordinals in Haskell
- Polynomials as numbers
- The Division Bell
- Haskell, PDF and penrose tilings
Testing
Regular expressions
The foreign function interface
Cabal and libraries
- Cabal and rpms
- Getting started with installing third-party Haskell packages
- The lambda revolution: how you can help
- The lambda revolution, Episode V, the deb strikes back
- Questions on Haskell Style (and Polynomials redux)