Difference between revisions of "Blog articles"

From HaskellWiki
Jump to navigation Jump to search
(Added a link to dohaskell)
(59 intermediate revisions by 6 users not shown)
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
collects the best of those articles from across the web.
+
page collects the best of those articles from across the web. Due to the
  +
vast amount of material, this page is divided into sub-categories:
   
  +
New material is posted to the [http://www.reddit.com/r/haskell/ Haskell Reddit] and [http://www.dohaskell.com/ dohaskell]
=== Introductions to Haskell ===
 
   
  +
== Introductory material ==
* [http://www.alpheccar.org/en/posts/show/67 Haskell Study Plan]
 
* [http://programming.reddit.com/goto?id=uzuc On Haskell, Intuition And Expressive Power]
 
* [http://programming.reddit.com/goto?id=15bx1 Haskell: Raising the bar]
 
* [http://printf.wordpress.com/2007/02/27/haskell-functional-programming-language/ Learning the Haskell programming language]
 
* [http://osfameron.vox.com/library/post/on-learning-haskell.html On learning Haskell]
 
* [http://onthebalcony.wordpress.com/2007/02/19/my-evolution-as-a-haskell-programmer/ My evolution as a Haskell programmer]
 
* [http://qftblog.wordpress.com/2007/02/14/why-its-so-hard-for-imperative-programmers-to-learn-funtional-languages/ Why its hard for imperative programmers to learn Haskell]
 
* [http://johnleesmiller.blogspot.com/2007/02/first-post.html Flirting with Functional Programming]
 
* [http://toomuchcode.blogspot.com/2007/02/building-firewall-against-complexity.html Building a Firewall Against Complexity]
 
* [http://syntaxfree.wordpress.com/2007/01/08/haskell-bondage-and-discipline-and-separation-of-concerns-programming/ Haskell, bondage-and-discipline and separation-of-concerns programming]
 
* [http://programming.reddit.com/info/xbc7/comments/cxfs0 Type systems as safety belts]
 
* [http://blog.interlinked.org/tutorials/haskell_introduction.html Haskell introduction for beginners]
 
* [http://blog.interlinked.org/tutorials/haskell_2.html Haskell Basics]
 
* [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://monad.carnalreason.org/wordpress/?p=20 Reconsidering my approach to learning Haskell]
 
* [http://metacircular.wordpress.com/2007/03/05/a-haskell-study-plan/ A Haskell study plan]
 
* [http://antoniocangiano.com/articles/2007/03/13/haskell-eye-for-the-ruby-guy Haskell Eye for the Ruby Guy]
 
   
  +
* [[/Introductions|Introductions to Haskell]]
==== First impressions ====
 
  +
* [[/Comparisons|Comparing Haskell to other languages]]
  +
* [[/Functional_programming|Functional programming in general]]
  +
* [[/Exercises|Small programming exercises]]
   
  +
== Specific topics ==
* [http://blogs.nubgames.com/code/?p=15 Haskell First Impressions]
 
* [http://blogs.nubgames.com/code/?p=17 One month in Haskell]
 
* [http://kevin.scaldeferri.com/blog/2007/02/12/OneWeek.html Thoughts on one week in Haskell]
 
* [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]
 
* [http://gimbo.org.uk/blog/2007/03/08/the_mapm_and_haskell_irc_post/ Monad wrangling, and the joy of #haskell]
 
* [http://ashish.typepad.com/ashishs_niti/2007/03/learning_haskel.html Learning Haskell]
 
* [http://www.noulakaz.net/weblog/2007/04/20/i-like-haskell-a-lot/ I like Haskell a lot]
 
   
  +
* [[/Algorithms|Algorithms and techniques]]
=== Comparisons to other languages ===
 
  +
* [[/Data|Data and control structures]]
  +
* [[/Databases|Databases in Haskell]]
  +
* [[/Errors|Error handling and exceptions]]
  +
* [[/GUIs|GUIs in Haskell]]
  +
* [[/Graphics|Graphics]]
  +
* [[/Web|HTML and XML and the Web]]
  +
* [[/Hardware|Hardware and robots]]
  +
* [[/Language|Haskell language features]]
  +
* [[/Performance|High performance Haskell]]
  +
* [[/IO|IO in Haskell]]
  +
* [[/FFI|The FFI: interfaces to other languages]]
  +
* [[/Libraries|Libraries and packages]]
  +
* [[/Mathematics|Mathematics and Haskell]]
  +
* [[/Monads|Monads, Comonads, Arrows]]
  +
* [[/Network|Networking]]
  +
* [[/Parallel|Parallel and concurrent programming]]
  +
* [[/Parsing|Parsing, regular expressions]]
  +
* [[/EDSLs|Domain specific languages and code generation]]
  +
* [[/Types|Programming with types]]
  +
* [[/Testing|Testing, correctness and proofs]]
   
==== Ruby ====
+
== Further reading ==
   
  +
Further material on these topics is available in [http://en.wikibooks.org/wiki/Haskell The Haskell Wikibook]
* [http://notes-on-haskell.blogspot.com/2007/01/ruby-vs-haskell-choose-what-works.html Ruby vs Haskell: choose what works]
 
* [http://notes-on-haskell.blogspot.com/2007/01/haskell-open-secret.html Haskell: open secret in Ruby land]
 
* [http://antoniocangiano.com/articles/2007/03/13/haskell-eye-for-the-ruby-guy Haskell Eye for the Ruby Guy]
 
* Monads in Ruby
 
** [http://meta-meta.blogspot.com/2006/12/monads-in-ruby-part-1-identity.html Part 1: Identity]
 
** [http://meta-meta.blogspot.com/2006/12/monads-in-ruby-part-15-identity.html Part 1.5: Identity]
 
* [http://rushcheck.rubyforge.org/ RushCheck, a lightweight random testing tool for Ruby similar to QuickCheck]
 
* [http://praisecurseandrecurse.blogspot.com/2007/03/haskell-for-short-attention-span-run.html part 1]
 
* [http://onthebalcony.wordpress.com/2007/03/10/ruby-and-elegance-transpose/ zip and transpose]
 
* [http://etorreborre.blogspot.com/2007/04/pattern-matching-with-ruby.html Pattern matching in Ruby]
 
   
  +
For libraries divided into similar topics, see:
==== Erlang ====
 
   
* [http://www.acooke.org/cute/ErlangsSyn0.html Small comparison of Erlang's syntactic difficulties]
+
* [http://hackage.haskell.org/packages/archive/pkg-list.html the Hackage database]
  +
* [http://haskell.org/haskellwiki/Applications_and_libraries Other libraries and tools]
 
==== Ada ====
 
 
* [http://neilmitchell.blogspot.com/2007/03/describing-haskell-to-ada-programmer.html Describing Haskell to an Ada programmer]
 
 
==== Java ====
 
 
* [http://blogs.msdn.com/ralflammel/archive/2006/12/21/more-haskell-in-java-7-or-8.aspx More Haskell in Java 7 or 8?]
 
* [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://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]
 
 
==== Perl 6 ====
 
 
* [http://diveintoperl6.blogspot.com/2007/05/perl-6-round-1_22.html Perl 6]
 
 
==== Eiffel ====
 
 
* [http://teameiffel.blogspot.com/2006/11/type-system-of-ecma-eiffel.html The type system of ECMA Eiffel (modelled in Haskell)]
 
 
==== Javascript ====
 
 
* [http://satta.org/2007/01/08/foldr-and-foldl-in-javascript/ foldr and foldl in JavaScript]
 
 
==== C ====
 
 
* [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]
 
* [http://blogs.msdn.com/wesdyer/archive/2007/03/01/immutability-purity-and-referential-transparency.aspx Immutability, Purity, and Referential Transparency in C#]
 
* [http://themechanicalbride.blogspot.com/2007/04/haskell-for-c-3-programmers.html Haskell for C# 3 Programmers]
 
 
==== Scala ====
 
 
* [http://blog.tmorris.net/ignorance-is-mostly-bliss-but-not-always/ Haskell, CAL and Scala]
 
* [http://blog.tmorris.net/the-power-of-type-classes-with-scala-implicit-defs Type classes]
 
 
==== CAL ====
 
 
* [http://jpmoresmau.blogspot.com/2007/04/haskell-code-java-ui.html Haskell code/Java UI]
 
 
==== 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 ====
 
 
* [http://programming.reddit.com/goto?id=nq1k Haskell versus Scheme]
 
 
==== Forth ====
 
 
* [http://shaurz.wordpress.com/2007/03/03/forth-as-a-haskell-dsl-or-lambda-the-ultimate-stack/ Forth as a Haskell DSL]
 
 
==== Factor ====
 
 
* [http://www.bluishcoder.co.nz/2006/10/factor-parser-combinator-example.html Haskell-style parser combinators in Factor: s-expression reader]
 
 
==== Lisp ====
 
 
* [http://www.defmacro.org/ramblings/lisp-in-haskell.html Writing lisp in Haskell]
 
* [http://common-lisp.net/project/patty/patty.html Haskell like data structures in Common Lisp]
 
 
==== Lua ====
 
 
* [http://salimma.livejournal.com/72850.html Lazy streams for Lua]
 
 
==== Qi ====
 
 
* [http://programmingkungfuqi.blogspot.com/2007/05/foldl-and-foldr.html Foldl and Foldr]
 
* [http://programmingkungfuqi.blogspot.com/2007/05/sk-combinator-in-qi-type-system.html SKI in Qi's type system]
 
 
=== Functional programming ===
 
 
* [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-revisited.html More on what's wrong with for loops]
 
* [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://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://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?]
 
* [http://azaidi.blogspot.com/2007/04/zen-and-art-of-functional-programming.html Zen and the Art of Functional Programming]
 
* [http://totherme.livejournal.com/3845.html Thinking in types]
 
 
=== Programming exercises ===
 
 
* [http://alangloria.blogspot.com/2006/11/okay.html Diff in Haskell]
 
* [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://gimbo.org.uk/archives/2006/12/#001887 Fibonacci series one-liner in Haskell]
 
* [http://jcreigh.blogspot.com/2006/11/simple-rpn-calculator-in-haskell.html A Simple RPN Calculator in Haskell]
 
* [http://kenta.blogspot.com/2006/11/eratosthenes-sieve.html Eratosthenes sieve]
 
* [http://mult.ifario.us/articles/2006/10/25/solitaire-cipher-in-haskell Software Cipher]
 
* [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://mult.ifario.us/articles/2006/12/22/secret-santas-in-haskell-iii-collect-reap-repeat Secret Santas in Haskell III: Lather, Rinse, Repeat 1]
 
* [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]
 
* Run length encoding:
 
** [http://praisecurseandrecurse.blogspot.com/2007/03/haskell-for-short-attention-span-run.html part 1]
 
** [http://praisecurseandrecurse.blogspot.com/2007/03/haskell-for-short-attention-span-run_05.html part 2]
 
** [http://praisecurseandrecurse.blogspot.com/2007/03/haskell-for-short-attention-span-run_07.html part 3]
 
* [http://sancho-ex.livejournal.com/7056.html Overlap function in Haskell for rectangles]
 
* [http://sigfpe.blogspot.com/2006/12/tying-knots-generically.html Tying Knots Generically]
 
* [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/161-Brainfuck-interpreter-in-Haskell.html Brainf*k interpreter in Haskell]
 
* [http://www.joachim-breitner.de/blog/archives/210-FourFours-in-Haskell.html FourFours in Haskell]
 
* [http://www.randomhacks.net/articles/2007/02/22/bayes-rule-and-drug-tests Using Bayesian filtering instead of 'if' in Haskell]
 
* [http://mackys.livejournal.com/424766.html Prime sieves in Haskell]
 
* Bowling in Haskell
 
** [http://www.xprogramming.com/xpmag/dbcHaskellBowling.htm Haskell Bowling]
 
** [http://www.randomhacks.net/articles/2007/04/28/bowling-in-haskell Bowling in Haskell Response]
 
 
==== Games ====
 
 
* [http://www.steffen-mazanek.de/blog/2007/02/haskell-chess.html Haskell chess]
 
* [http://jpmoresmau.blogspot.com/2006/11/my-first-haskell-adventure-game.html My first Haskell adventure game!]
 
* [http://www.joachim-breitner.de/blog/archives/152-Hangman-AI-in-haskell.html Hangman AI in Haskell]
 
* [http://www.joachim-breitner.de/blog/archives/139-Haskell-as-a-puzzle-Solver.html Haskell as a puzzle solver]
 
 
=== 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://community.livejournal.com/evan_tech/206250.html Lazy lists as iterators]
 
 
=== Records ===
 
 
* [http://bloggablea.wordpress.com/2007/04/24/haskell-records-considered-grungy/ Haskell records considered grungy]
 
 
=== IO ===
 
 
* [http://blogs.nubgames.com/code/?p=22 Haskell I/O for imperative programmers]
 
* Directory tree printing:
 
** [http://blog.moertel.com/articles/2007/02/22/a-simple-directory-tree-printer-in-haskell Part 1]
 
** [http://blog.moertel.com/articles/2007/03/07/directory-tree-printing-in-haskell-part-two-refactoring Part 2]
 
* [http://cod3po37ry.blogspot.com/2007/02/more-on-haskell-io-and-interact.html Introductory console IO in Haskell]
 
* [http://therning.org/magnus/archives/228 Listing files in Haskell]
 
* [http://therning.org/magnus/archives/249 Playing unsafe Haskell]
 
* [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://notes-on-haskell.blogspot.com/2007/03/design-patterns-in-haskell-bracket.html Design Patterns in Haskell: bracket]
 
* [http://www.friendofthepigeon.co.uk/wordpress/?p=54 7 Rules for IO in Haskell]
 
* [http://therning.org/magnus/archives/223 File related hacking]
 
 
==== Command line arguments ====
 
 
* [http://leiffrenzel.de/papers/commandline-options-in-haskell.html Command line arguments in Haskell]
 
 
==== Unix ====
 
 
* [http://programming.reddit.com/goto?id=jgbf Simple Unix Tools in Elegant Haskell]
 
* [http://blog.kfish.org/software/haskell/intro-haskell-unix.html Introductory Haskell Programming in the UNIX Environment]
 
* [http://changelog.complete.org/posts/587-guid.html HSH: a Haskell scripting environment]
 
* [http://porg.es/blog/functional-programming-apl-and-unix-pipes Function composition and unix pipes]
 
* [http://cgi.cse.unsw.edu.au/~dons/blog/2007/03/06#programmable-semicolons Practical Haskell: shell scripting with error handling and privilege separation]
 
* [http://praisecurseandrecurse.blogspot.com/2007/04/haskell-for-short-attention-span-simple.html A simple file filter]
 
* [http://therning.org/magnus/archives/285 Signal handling]
 
 
=== Network ===
 
 
 
* [http://nominolo.blogspot.com/2007/05/networkhttp-bytestrings.html Network.HTTP]
 
 
==== TCP ====
 
 
* [http://sequence.complete.org/node/258 Simple STM TCP server]
 
* [http://stephan.walter.name/blog/computers/programming/haskell/interacttcp.html Haskell's 'interact' with TCP sockets]
 
* [http://greek-lord.gr/WordPress/?p=10 Port Scanner in Haskell]
 
* Simple socket programming:
 
** [http://metavar.blogspot.com/2007/03/simple-socket-programming.html Part 1]
 
** [http://metavar.blogspot.com/2007/03/simple-socket-programming-2-revenge-of.html Part 2]
 
* [http://austin.youareinferior.net/?q=node/24 On haskell: writing a packet sniffer]
 
 
==== IRC ====
 
 
* [http://blog.nurd.se/hype/?p=30 An IRC client/server in Haskell]
 
* [http://haskell.org/haskellwiki/Roll_your_own_IRC_bot Roll your own Haskell IRC bot]
 
 
=== Parallelism and Concurrency ===
 
 
* [http://radar.oreilly.com/archives/2007/01/threads_conside.html Threads]
 
* STM and IO
 
** [http://mult.ifario.us/articles/2007/03/04/stm-and-io STM, IO, and a Simple Persistence Model]
 
** [http://mult.ifario.us/articles/2007/03/13/stm-and-io-redux STM and IO Redux]
 
* Synchronised threads:
 
** [http://sequence.complete.org/node/252 part1]
 
** [http://sequence.complete.org/node/253 part2]
 
* [http://mikeburrell.wordpress.com/2007/04/16/more-haskell-parallelism/ More Haskell parallelism]
 
 
=== Performance ===
 
 
* [http://www.randomhacks.net/articles/2007/01/22/high-performance-haskell High performance Haskell]
 
* [http://www.haskell.org/pipermail/haskell-cafe/2007-February/022315.html Reading GHC Core and tuning assembly output]
 
* [http://syntaxfree.wordpress.com/2007/05/04/lra/ Simple performance analysis]
 
 
=== Parsing ===
 
 
* [http://a-preponderance-of-pondering.blogspot.com/2006/12/parser-combinators.html Parser combinators]
 
* [http://gbacon.blogspot.com/2007/02/my-first-monadic-program.html Monadic parsing]
 
* [http://jpmoresmau.blogspot.com/2006/12/adventures-in-haskell-parsec-magic.html Adventures in Haskell: the Parsec magic weapon]
 
* [http://jpmoresmau.blogspot.com/2006/12/adventures-in-haskell-parsing-game.html Adventures in Haskell: parsing the game world]
 
* [http://mikeburrell.wordpress.com/2007/02/25/combinator-parsing/ Combinator parsing]
 
* [http://sequence.complete.org/node/231 Parser with Writer monad]
 
* [http://sequence.complete.org/node/259 Simple Parsec Example: HTMangL]
 
* [http://unenterprise.blogspot.com/2007/03/parsers-parsec-and-haskell.html Parsers, Parsec and Haskell]
 
* [http://www-etud.iro.umontreal.ca/~laurieti/parser.html Interesting parsers in Haskell]
 
* [http://www.knowing.net/PermaLink,guid,0cc63c2f-e167-406d-a00e-4f390e9494f6.aspx Explicit Typing, Trail Blazing, and Packrat Parsing]
 
* [http://www.serpentine.com/blog/2007/01/19/playing-fast-and-loose-with-parsec-for-parsing-in-haskell/ Playing fast and loose with Parsec for parsing in Haskell]
 
* [http://www.serpentine.com/blog/2007/01/31/parsing-a-simple-config-file-in-haskell/ Config file parsing]
 
* [http://notes-on-haskell.blogspot.com/2007/05/parsing-json.html Parsing JSON in Haskell]
 
* [http://halogen.note.amherst.edu/~jdtang/scheme_in_48/tutorial/overview.html Write yourself a Scheme in 48 hours]
 
* [http://sami.samhuri.net/articles/2007/05/03/a-scheme-parser-in-haskell-part-1 Parsing Scheme in Haskell]
 
 
=== Monads ===
 
 
* [http://cale.yi.org/index.php/The_Monad_Laws The monad laws]
 
* [http://sigfpe.blogspot.com/2007/04/trivial-monad.html The Trivial Monad]
 
* [http://sigfpe.blogspot.com/2007/04/homeland-security-threat-level-monad.html Tracking tainted data: Homeland Security Threat Level Monad]
 
* [http://sigfpe.blogspot.com/2006/10/monads-field-guide.html Monads: a field guide]
 
* [http://sigfpe.blogspot.com/2006/11/variable-substitution-gives.html Variable substitution gives a ... monad]
 
* [http://sigfpe.blogspot.com/2007/01/monads-hidden-behind-every-zipper.html The monad behind every zipper]
 
* [http://sigfpe.blogspot.com/2007/02/monads-for-vector-spaces-probability.html Monads for vector spaces, probability and quantum mechanics pt. I]
 
* [http://sigfpe.wordpress.com/2007/03/04/monads-vector-spaces-and-quantum-mechanics-pt-ii/ Monads, Vector Spaces and Quantum Mechanics pt. II]
 
* [http://cgi.cse.unsw.edu.au/~dons/blog/2006/12/11#interpreters-with-reader-monads Quick interpreters with the Reader monad]
 
* [http://hierodule.livejournal.com/69052.html Monads]
 
* [http://neilbartlett.name/blog/?p=13 More on Haskell, Side Effects and Code Reuse]
 
* [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/the_theory_of_monads_and_the_m_1.php The theory of monads]
 
* [http://www.alpheccar.org/en/posts/show/60 A newbie in Haskell land or another monad tutorial]
 
* [http://www.alpheccar.org/en/posts/show/61 A newbie in Haskell land : The (->) monad]
 
* [http://www.randomhacks.net/articles/2007/03/03/smart-classification-with-haskell Smart classification using Bayesian monads]
 
* [http://www.randomhacks.net/articles/2007/03/05/three-things-i-dont-understand-about-monads 3 open problems with monads]
 
* [http://www.randomhacks.net/articles/2007/03/12/monads-in-15-minutes Monads in 15 minutes: Backtracking and Maybe]
 
* [http://www.randomhacks.net/articles/2007/03/15/data-set-monad-haskell-macros How to make Data.Set a monad]
 
* [http://www.sdowney.org/2007/01/monads-rest-and-c-template.html Monads work because they have a tight interface]
 
* [http://www.serpentine.com/blog/2007/01/09/haskell-bootstrapping-into-a-clue-about-monads/ Haskell: bootstrapping into a clue about monads]
 
* [http://www.rfc1149.net/blog/2007/03/06/why-monads-matter/#more-110 Why monads matter]
 
* [http://www.bolour.com/papers/monads-through-pictures.html Monads through Pictures]
 
* [http://gelisam.blogspot.com/2006/10/monads-as-universe-helpers.html Monads as universe helpers]
 
* [http://therning.org/magnus/archives/215 Simple state monad]
 
* [http://therning.org/magnus/archives/269 repeat and sequence]
 
 
==== 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://sigfpe.blogspot.com/2006/09/local-and-global-side-effects-with.html Local and global side effects with monad transformers]
 
* [http://sigfpe.blogspot.com/2006/05/grok-haskell-monad-transformers.html Grok monad transformers]
 
* [http://scsibug.com/2006/11/28/a-simple-game-with-statet/ A Simple Game with StateT]
 
 
==== Arrows ====
 
 
* [http://kpreid.livejournal.com/7351.html Concatenative programming in Haskell's Arrows]
 
* [http://abstractabsurd.blogspot.com/2007/04/arrows-security.html Arrows and security]
 
 
==== Comonads ====
 
 
* [http://sigfpe.blogspot.com/2007/02/comonads-and-reading-from-future.html Comonads and reading from the future]
 
* [http://sigfpe.blogspot.com/2006/12/evaluating-cellular-automata-is.html Evaluating cellular automata is co-monadic]
 
* [http://meryrus.blogspot.com/2007/04/reading-and-coreading.html Reading and co-reading]
 
* [http://gelisam.blogspot.com/2007/04/i-understand-comonads.html Understanding comonads]
 
 
=== Error handling and exceptions ===
 
 
* [http://edwinb.wordpress.com/2007/01/15/error-handling-in-haskell/ Error handling in Haskell]
 
* [http://praisecurseandrecurse.blogspot.com/2006/11/some-very-basic-haskell-and-thoughts-on.html Some Very Basic Haskell and Thoughts on Error Diagnosis]
 
* [http://www.randomhacks.net/articles/2007/03/10/haskell-8-ways-to-report-errors 8 ways to report errors in Haskell]
 
* [http://nominolo.blogspot.com/2007/05/towards-better-error-handling.html Towards Better Error Handling]
 
 
=== 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://scienceblogs.com/goodmath/2006/12/functions_types_function_types_1.php Functions, Types, Function Types, and Type Inference]
 
* [http://scienceblogs.com/goodmath/2006/12/building_datatypes_in_haskell_1.php Building Datatypes in Haskell (part 1)]
 
* [http://cucumariid.livejournal.com/36757.html Rank-2 polymorphism is a strange thing]
 
 
==== Type classes ====
 
 
* [http://www.cs.nott.ac.uk/~pni/Papers/Notes/typeClassOvld.html Type Classes: Not Quite Overloading"]
 
* [http://scienceblogs.com/goodmath/2007/01/haskell_the_basics_of_type_cla_1.php Haskell: the Basics of Type Classes]
 
 
=== Data structures ===
 
 
* [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]
 
* [http://syntaxfree.wordpress.com/2007/02/11/finally-some-hacking-of-my-own-a-counter-datatype/ A counter datatype with constant-time update]
 
* [http://www.randomhacks.net/articles/2007/02/10/map-fusion-and-haskell-performance Map fusion: Making Haskell 225% faster]
 
 
====Strings====
 
 
* [http://gimbo.org.uk/blog/2007/04/20/splitting-a-string-in-haskell/ Splitting a string in Haskell]
 
 
=== Algorithms and techniques ===
 
 
====Folds====
 
 
* [http://www.acooke.org/andrew/writing/folds.html Second order folds]
 
* [http://mikeburrell.wordpress.com/2007/02/01/functional-idempotence-optimization/ Folds and functional programming]
 
* [http://cale.yi.org/index.php/Fold_Diagrams Fold diagrams]
 
* [http://monad.carnalreason.org/wordpress/?p=19 foldr, foldl]
 
 
====Dynamic programming====
 
 
* [http://sequence.complete.org/node/263 Dynamic Programming in Haskell]
 
 
====Mutable data====
 
 
* [http://neilbartlett.name/blog/2007/04/11/haskell-an-imperative-language-with-mutable-state/ Haskell: an Imperative Language with Mutable State]
 
 
====Sections and Currying====
 
 
* [http://www.movethemarkets.com/richard/2007/04/28/functional-programming-idiom-plan-for-currying/ Currying]
 
* [http://gimbo.org.uk/blog/2007/04/13/playing-with-sections-in-haskell/ Playing with sections in Haskell]
 
 
=== GUIs ===
 
 
* [http://j-van-thiel.speedlinq.nl/EddyAhmed/GladeGtk2Hs.html Developing Gnome Apps with Glade]
 
* [http://www.ventonegro.org/?p=95 Haskell in the real, mundane world]
 
* [http://araujoluis.blogspot.com/2007/04/haskell-gui-programing.html Haskell GUI Programing]
 
 
=== Graphics ===
 
 
* [http://www.alpheccar.org/en/posts/show/69 IFS In Haskell]
 
* [http://playtechs.blogspot.com/2007/04/raytracing-on-grid-in-haskell.html Raytracing on a grid in Haskell]
 
* [http://scsibug.com/2007/04/21/mandelbrot-hs/ Fractals with Haskell-GD]
 
 
=== Web and XML ===
 
 
* [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]
 
* Writing a Simple Search Engine in Haskell
 
** [http://blogs.nubgames.com/code/?p=18 Part 0 Introduction]
 
** [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]
 
 
==== HTML ====
 
 
* [http://www.movethemarkets.com/richard/2007/04/14/use-of-textxhtmlstrict-for-outputting-xhtml/ Use of Text.XHtml.Strict for Outputting XHTML]
 
 
==== XML, Atom, RSS ====
 
 
* [http://mult.ifario.us/articles/2007/02/27/really-simple-atom-syndication Really simple Atom syndication]
 
* [http://cale.yi.org/index.php/HRSS A simple RSS aggregator in 50 lines of Haskell using HXT]
 
* [http://www.haskell.org/haskellwiki/HXT Using the Haskell XML Toolbox]
 
 
=== Maths ===
 
 
==== Haskell for mathematics ====
 
 
* [http://sigfpe.blogspot.com/2006/09/learn-maths-with-haskell.html Learn Maths with Haskell]
 
* [http://sigfpe.blogspot.com/2006/09/practical-synthetic-differential.html Practical Synthetic Differential Geometry]
 
* [http://sigfpe.blogspot.com/2006/09/more-low-cost-geometric-algebra.html More Low Cost Geometric Algebra]
 
* [http://sigfpe.blogspot.com/2006/08/algebraic-topology-in-haskell.html Algebraic Topology in Haskell]
 
* [http://sigfpe.blogspot.com/2006/09/infinitesimal-types.html Infinitesimal Types]
 
* [http://sigfpe.blogspot.com/2006/08/geometric-algebra-for-free_30.html Geometric Algebra for Free!]
 
* [http://sigfpe.blogspot.com/2006/01/eleven-reasons-to-use-haskell-as.html Eleven Reasons to use Haskell as a Mathematician]
 
* [http://sigfpe.blogspot.com/2006/06/laws-of-form-opinion.html Laws of Form: An Opinion]
 
* [http://blog.mikael.johanssons.org/archive/2006/11/a-algebras-and-group-cohomology/ A-algebras and group cohomology]
 
* [http://blog.mikael.johanssons.org/archive/2006/10/prototyping-thought/ Prototyping thought]
 
* [http://blog.mikael.johanssons.org/archive/2006/10/computational-group-theory-in-haskell-1-in-a-series/ Computational Group Theory in Haskell]
 
* [http://blog.mikael.johanssons.org/archive/2006/07/carry-bits-and-group-cohomology/ Carry bits and group cohomology]
 
* [http://www.quetzal.com/sambangu/2006/12/polynomials-as-numbers Polynomials as numbers]
 
* [http://vandreev.wordpress.com/2006/12/04/non-standard-analysis-and-automatic-differentiation/ Non-standard analysis, automatic differentiation, Haskell]
 
* [http://www.polyomino.f2s.com/ Haskell for Maths]: commutative algebra, combinatorics, number theory, and group theory
 
* [http://www.serpentine.com/blog/2007/01/11/two-dimensional-spatial-hashing-with-space-filling-curves/ Two-dimensional spatial hashing with space-filling curves]
 
* [http://vandreev.wordpress.com/2007/01/07/arithmetic-coding/ Arithmetic coding 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]
 
* 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]
 
* Overloading Haskell numbers
 
** [http://augustss.blogspot.com/2007/04/overloading-haskell-numbers-part-1.html Part 1: symbolic expressions]
 
** [http://augustss.blogspot.com/2007/04/overloading-haskell-numbers-part-2.html Part 2: Forward Automatic Differentiation]
 
** [http://augustss.blogspot.com/2007/04/overloading-haskell-numbers-part-3.html Part 3: Fixed Precision]
 
 
==== Theorem proving ====
 
 
* [http://vandreev.wordpress.com/2006/12/24/quick-and-dirty-theorem-prover/ Quick and Dirty Theorem Prover]
 
 
==== Quantum computing ====
 
 
* [http://sigfpe.blogspot.com/2007/02/essence-of-quantum-computing.html The Essence of Quantum Computing]
 
* [http://sigfpe.blogspot.com/2007/02/monads-for-vector-spaces-probability.html Monads for vector spaces, probability and quantum mechanics pt. I]
 
* [http://sigfpe.blogspot.com/2007/03/monads-vector-spaces-and-quantum.html Monads, Vector Spaces and Quantum Mechanics pt. II]
 
* [http://sigfpe.blogspot.com/2007/03/independence-entanglement-and.html Independence, entanglement and decoherence with the quantum monad]
 
* [http://sigfpe.blogspot.com/2007/03/shor-quantum-error-correcting-code-and.html The Shor Quantum Error Correcting Code (and a Monad for Heat)]
 
* [http://www.alpheccar.org/en/posts/show/68 The Frame Of Reference Monad]
 
 
==== Mathematics of Haskell ====
 
* [http://sigfpe.blogspot.com/2006/11/why-isnt-listt-monad.html Why isn't ListT list a monad?]
 
* [http://sigfpe.blogspot.com/2006/11/yoneda-lemma.html Reverse Engineering Machines with the Yoneda Lemma]
 
* [http://sigfpe.blogspot.com/2006/11/variable-substitution-gives.html Variable substitution gives a...]
 
* [http://sigfpe.blogspot.com/2006/11/from-l-theorem-to-spreadsheet.html From Lb's Theorem to Spreadsheet Evaluation]
 
* [http://sigfpe.blogspot.com/2006/10/games-strategies-and-self-composition.html Games, Strategies and the Self-Composition of the List Monad.]
 
* [http://scienceblogs.com/goodmath/2006/09/programs_are_proofs_models_and_1.php Programs are Proofs: Models and Types in Lambda Calculus]
 
* [http://scienceblogs.com/goodmath/2006/11/why_haskell.php Why Haskell?]
 
* [http://www.onebadseed.com/blog/?p=51 Don't need the Y combinator]
 
 
=== Testing ===
 
 
* [http://haskell.org/haskellwiki/Introduction_to_QuickCheck Introduction to QuickCheck]
 
* [http://cgi.cse.unsw.edu.au/~dons/blog/2007/05/01#xmonad_part1_model QuickChecking a window manager]
 
* [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]
 
* [http://abstractabsurd.blogspot.com/2007/02/sussman-robustness-quickcheck.html Robustness and QuickCheck]
 
 
=== Regular expressions ===
 
 
* [http://www.serpentine.com/blog/2007/02/27/a-haskell-regular-expression-tutorial/ A regular expression tutorial]
 
* [http://haskell.org/haskellwiki/Regular_expressions Using the new regex packages]
 
 
=== The foreign function interface ===
 
 
* [http://blog.acolyte.co.za/articles/2007/01/01/simple-demonstration-of-haskell-ffi Simple demonstration of Haskell FFI]
 
* [http://therning.org/magnus/archives/238 C and Haskell sitting in a tree]
 
* [http://therning.org/magnus/archives/280 Haskell and C: functions returning more than one value]
 
 
=== Tips and tricks ===
 
 
* [http://www.joachim-breitner.de/blog/archives/156-Haskell-on-the-Command-Line.html Using Haskell from the command line]
 
 
=== Cabal and libraries ===
 
 
* [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.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)]
 
* [http://gimbo.org.uk/blog/2007/04/27/haskell-packages-gotcha-global-vs-per-user-package-databases/ Using the Haskell package system]
 
 
=== Hardware description languages ===
 
 
* [http://iguanarama.com/blog/?p=8 Haskell and HDL's]
 
   
  +
For in-depth research into these topics:
   
  +
* [http://haskell.org/haskellwiki/Research_papers Research paper database]
  +
 
[[Category:Tutorials]]
 
[[Category:Tutorials]]

Revision as of 15:10, 19 June 2014