Difference between revisions of "Blog articles"

From HaskellWiki
Jump to navigation Jump to search
(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]
 
* [http://monad.carnalreason.org/wordpress/?p=20 Reconsidering my approach to learning 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://mikeburrell.wordpress.com/2007/02/01/functional-idempotence-optimization/ Folds and 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://www.acooke.org/andrew/writing/folds.html Second order folds]
 
 
* [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://monad.carnalreason.org/wordpress/?p=19 foldr, foldl]
 
  +
* [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 and arrows ===
+
=== 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]
   
=== Web ===
+
=== Combinators ===
   
 
* [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]
  +
  +
=== 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

First impressions

Comparisons to other languages

Ruby

Java

Eiffel

Javascript

C

C#

Scala

Python

Scheme

Factor

Lisp

Lua

Functional programming

Programming exercises

Laziness

IO

Network

Concurrency

Performance

Parsing

Monads

Monad transformers

Arrows

Comonads

Error handling and exceptions

Types

Type classes

Data structures

Combinators

GUIs

Web and XML

Maths

Testing

Regular expressions

The foreign function interface

Cabal and libraries

Hardware description languages

Theory

Lambda calculus