Personal tools

Blog articles

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(Maths)
 
(40 intermediate revisions by 5 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:
   
=== Introductions to Haskell ===
+
New material is posted to the [http://www.reddit.com/r/haskell/ Haskell Reddit]
   
* [http://www.onlamp.com/pub/a/onlamp/2007/05/21/an-introduction-to-haskell---part-1-why-haskell.html ONLamp: An Introduction 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://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]
 
   
==== First impressions ====
+
* [[/Introductions|Introductions to Haskell]]
  +
* [[/Comparisons|Comparing Haskell to other languages]]
  +
* [[/Functional_programming|Functional programming in general]]
  +
* [[/Exercises|Small programming exercises]]
   
* [http://blogs.nubgames.com/code/?p=15 Haskell First Impressions]
+
== Specific topics ==
* [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://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]
 
   
=== Comparisons to other languages ===
+
* [[/Algorithms|Algorithms and techniques]]
  +
* [[/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]]
   
* [[/Comparisons|Comparisons to other languages]]
+
== Further reading ==
   
=== Functional programming ===
+
Further material on these topics is available in [http://en.wikibooks.org/wiki/Haskell The Haskell Wikibook]
   
* [http://www.yomi.at/archive/2007/02/115 A fold-like procedure in C]
+
For libraries divided into similar topics, see:
* [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://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://hackage.haskell.org/packages/archive/pkg-list.html the Hackage database]
  +
* [http://haskell.org/haskellwiki/Applications_and_libraries Other libraries and tools]
   
* [http://alangloria.blogspot.com/2006/11/okay.html Diff in Haskell]
+
For in-depth research into these topics:
* [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://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]
 
* [http://www.serpentine.com/blog/2007/05/14/norvigs-spell-checker-and-idiomatic-haskell/ Norvig's spell checker and idiomatic Haskell]
 
 
==== 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://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 ====
 
 
* [http://nominolo.blogspot.com/2007/05/networkhttp-bytestrings.html Network.HTTP + ByteStrings]
 
* [http://www.alpheccar.org/en/posts/show/73 Haskell: Preventing irreversible updates from HTTP GET with types]
 
 
==== 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]
 
* [http://abstractabsurd.blogspot.com/2007/05/couple-of-silly-examples.html A simple echo server]
 
 
==== 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 Considered Harmful] (discusses [http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-1.html The Problem with 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://davblog48.blogspot.com/2007/05/parsec.html A beginner with Parsec]
 
 
=== Code generation ===
 
 
* Writing x86 code generators with Harpy:
 
** [http://augustss.blogspot.com/2007/06/playing-with-harpy-recently-there-was.html Generating x86 assembly]
 
** [http://augustss.blogspot.com/2007/06/simple-compiler-in-my-last-post-i.html Compiling a DSL to x86 assembly]
 
** [http://augustss.blogspot.com/2007/06/disassembly-harpy-package-also-contains.html Disassembling x86]
 
 
=== 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://sigfpe.blogspot.com/2007/06/how-to-write-tolerably-efficient.html How to write tolerably efficient optimzation code without really trying...]
 
* [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]
 
* [http://lukeplant.me.uk/blog.php?id=1107301659 What's a monad?]
 
 
==== 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://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://babel.ls.fi.upm.es/~pablo/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]
 
* [http://liftm.wordpress.com/2007/06/03/scientificdimension-type-arithmetic-and-physical-units-in-haskell/ Scientific.Dimension: Type Arithmetic and Physical Units in Haskell]
 
 
==== Type classes ====
 
 
* [http://babel.ls.fi.upm.es/~pablo/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]
 
* [http://cgi.cse.unsw.edu.au/~dons/blog/2007/05/17#xmonad_part1b_zipper Roll Your Own Window Manager: Tracking Focus with a Zipper]
 
 
====Strings====
 
 
* [http://gimbo.org.uk/blog/2007/04/20/splitting-a-string-in-haskell/ Splitting a string in Haskell]
 
 
=== Algorithms and techniques ===
 
 
* [http://twan.home.fmf.nl/blog/haskell/Knuth-Morris-Pratt-in-Haskell.details Knuth-Morris-Pratt in Haskell]
 
* [http://illicittech.blogspot.com/2007/06/travelling-salesman-problem.html Travelling Salesman Problem: Introduction (in Haskell)]
 
 
====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]
 
 
====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]
 
 
=== Databases ===
 
 
* [http://davblog48.blogspot.com/2007/05/trying-to-learn-haskell-database.html Learning Haskell databases]
 
 
=== 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]
 
* [http://blog.kfish.org/2007/06/review-tagsoup.html Library review: TagSoup]
 
 
==== 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 ===
 
 
* [[/Mathematics|Articles on mathematics and Haskell]
 
 
=== Testing, correctness and proofs ===
 
 
* [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://abstractabsurd.blogspot.com/2007/02/sussman-robustness-quickcheck.html Robustness and QuickCheck]
 
* [http://neilmitchell.blogspot.com/2007/05/does-xmonad-crash.html Does XMonad crash? On proving pattern coverage with Catch]
 
* [http://neilmitchell.blogspot.com/2007/05/preconditions-on-xmonad.html Preconditions on XMonad]
 
 
=== 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]
 
* [http://michaelspeer.blogspot.com/2007/05/initial-code-at-regular-expressions-in.html Regular expressions in Haskell]
 
 
=== 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]
 
* [http://www.brandonwerner.com/2007/06/10/how-to-install-haskell-haddock-on-mac-os-x/ How To Install Haskell Haddock on Mac OS X]
 
 
=== Robots and Hardware ===
 
 
* [http://iguanarama.com/blog/?p=8 Haskell and HDL's]
 
* [http://sigfpe.blogspot.com/2007/05/haskell-incarnate.html Haskell incarnate: robots and Haskell]
 
 
=== Neural networks ===
 
 
* [http://jpmoresmau.blogspot.com/2007/06/very-dumb-neural-network-in-haskell.html A neural network in Haskell]
 
   
  +
* [http://haskell.org/haskellwiki/Research_papers Research paper database]
  +
 
[[Category:Tutorials]]
 
[[Category:Tutorials]]

Latest revision as of 19:35, 23 November 2008

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. Due to the vast amount of material, this page is divided into sub-categories:

New material is posted to the Haskell Reddit

[edit] 1 Introductory material

[edit] 2 Specific topics

[edit] 3 Further reading

Further material on these topics is available in The Haskell Wikibook

For libraries divided into similar topics, see:

For in-depth research into these topics: