Difference between revisions of "Blog articles"
Jump to navigation
Jump to search
DonStewart (talk | contribs) (lots more articles) |
DonStewart (talk | contribs) (more articles) |
||
Line 1: | Line 1: | ||
⚫ | |||
+ | Many areas of Haskell have been explored in the form of blog posts. This page |
||
⚫ | |||
⚫ | |||
+ | |||
⚫ | |||
* [http://programming.reddit.com/goto?id=uzuc On Haskell, Intuition And Expressive Power] |
* [http://programming.reddit.com/goto?id=uzuc On Haskell, Intuition And Expressive Power] |
||
Line 11: | Line 13: | ||
* [http://johnleesmiller.blogspot.com/2007/02/first-post.html Flirting with Functional Programming] |
* [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://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] |
||
=== First impressions === |
=== First impressions === |
||
Line 17: | Line 25: | ||
* [http://blogs.nubgames.com/code/?p=17 One month in Haskell] |
* [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://kevin.scaldeferri.com/blog/2007/02/12/OneWeek.html Thoughts on one week in Haskell] |
||
+ | * [http://blogs.nubgames.com/code/?p=16 Comparing Gzip Code Reduction] |
||
+ | * [http://www.stonecode.org/blog/?p=101 Haskell, first impressions (with sexy results)] |
||
=== Comparisons to other languages === |
=== Comparisons to other languages === |
||
+ | ==== Scala ==== |
||
* [http://blog.tmorris.net/ignorance-is-mostly-bliss-but-not-always/ Haskell, CAL and Scala] |
* [http://blog.tmorris.net/ignorance-is-mostly-bliss-but-not-always/ Haskell, CAL and Scala] |
||
+ | |||
+ | ==== Ruby ==== |
||
+ | |||
* [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/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://notes-on-haskell.blogspot.com/2007/01/haskell-open-secret.html Haskell: open secret in Ruby land] |
||
+ | * [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] |
||
+ | |||
+ | ==== 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] |
||
+ | |||
+ | ==== 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] |
||
=== Functional programming === |
=== Functional programming === |
||
Line 30: | Line 60: | ||
* [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] |
||
* [http://notes-on-haskell.blogspot.com/2007/02/whats-wrong-with-for-loop-revisited.html More on 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://www.acooke.org/andrew/writing/folds.html Second order folds] |
||
+ | * [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://monad.carnalreason.org/wordpress/?p=19 foldr, foldl] |
||
+ | |||
+ | === Programming exercises === |
||
+ | |||
+ | * [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://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/210-FourFours-in-Haskell.html FourFours in 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] |
||
=== IO === |
=== IO === |
||
Line 37: | Line 86: | ||
* [http://blog.moertel.com/articles/2007/02/22/a-simple-directory-tree-printer-in-haskell A filesystem tree printer] |
* [http://blog.moertel.com/articles/2007/02/22/a-simple-directory-tree-printer-in-haskell A filesystem tree printer] |
||
* [http://cod3po37ry.blogspot.com/2007/02/more-on-haskell-io-and-interact.html Introductory console IO in Haskell] |
* [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] |
||
=== Network === |
=== Network === |
||
* [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] |
||
+ | |||
+ | === Concurrency === |
||
+ | |||
+ | * [http://radar.oreilly.com/archives/2007/01/threads_conside.html Threads] |
||
+ | |||
+ | === Performance === |
||
+ | |||
+ | * [http://www.randomhacks.net/articles/2007/01/22/high-performance-haskell High performance Haskell] |
||
=== Parsing === |
=== Parsing === |
||
Line 47: | Line 106: | ||
* [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/19/playing-fast-and-loose-with-parsec-for-parsing-in-haskell/ Playing fast and loose with Parsec for parsing in Haskell] |
||
* [http://mikeburrell.wordpress.com/2007/02/25/combinator-parsing/ Combinator parsing] |
* [http://mikeburrell.wordpress.com/2007/02/25/combinator-parsing/ Combinator parsing] |
||
+ | * [http://www-etud.iro.umontreal.ca/~laurieti/parser.html Interesting parsers in Haskell] |
||
+ | * [http://sequence.complete.org/node/231 Parser with Writer monad] |
||
+ | * [http://a-preponderance-of-pondering.blogspot.com/2006/12/parser-combinators.html Parser combinators] |
||
=== Monads and arrows === |
=== Monads and arrows === |
||
Line 54: | Line 116: | ||
* [http://www.sdowney.org/2007/01/monads-rest-and-c-template.html Monads work because they have a tight interface] |
* [http://www.sdowney.org/2007/01/monads-rest-and-c-template.html Monads work because they have a tight interface] |
||
* [http://scienceblogs.com/goodmath/2007/01/the_theory_of_monads_and_the_m_1.php The theory of monads] |
* [http://scienceblogs.com/goodmath/2007/01/the_theory_of_monads_and_the_m_1.php The theory of monads] |
||
+ | * [http://sigfpe.blogspot.com/2007/01/monads-hidden-behind-every-zipper.html The monad behind every zipper] |
||
* [http://neilbartlett.name/blog/?p=13 More on Haskell, Side Effects and Code Reuse] |
* [http://neilbartlett.name/blog/?p=13 More on Haskell, Side Effects and Code Reuse] |
||
+ | * [http://hierodule.livejournal.com/69052.html 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] |
||
==== Monad transformers ==== |
==== Monad transformers ==== |
||
* [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] |
||
==== Comonads ==== |
==== Comonads ==== |
||
* [http://sigfpe.blogspot.com/2007/02/comonads-and-reading-from-future.html Comonads and reading from the future] |
* [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] |
||
+ | |||
+ | === 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] |
||
=== Types === |
=== Types === |
||
* [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/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 ==== |
==== Type classes ==== |
||
* [http://www.cs.nott.ac.uk/~pni/Papers/Notes/typeClassOvld.html Type Classes: Not Quite Overloading"] |
* [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 === |
=== Data structures === |
||
Line 111: | Line 188: | ||
* [http://vandreev.wordpress.com/2007/01/07/arithmetic-coding/ Arithemtic coding in Haskell] |
* [http://vandreev.wordpress.com/2007/01/07/arithmetic-coding/ Arithemtic coding in Haskell] |
||
* [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] |
||
=== Regular expressions === |
=== Regular expressions === |
||
* [http://www.serpentine.com/blog/2007/02/27/a-haskell-regular-expression-tutorial/ A regular expression tutorial] |
* [http://www.serpentine.com/blog/2007/02/27/a-haskell-regular-expression-tutorial/ A regular expression tutorial] |
||
+ | |||
+ | === The foreign function interface === |
||
+ | |||
+ | * [http://blog.acolyte.co.za/articles/2007/01/01/simple-demonstration-of-haskell-ffi Simple demonstration of Haskell FFI] |
||
=== Cabal and libraries === |
=== Cabal and libraries === |
||
Line 124: | Line 206: | ||
* [http://iguanarama.com/blog/?p=8 Haskell and HDL's] |
* [http://iguanarama.com/blog/?p=8 Haskell and HDL's] |
||
− | |||
− | === Uncategorised === |
||
− | |||
⚫ | |||
[[Category:Tutorials]] |
[[Category:Tutorials]] |
Revision as of 03:40, 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
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)
Comparisons to other languages
Scala
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
Java
Javascript
C
Functional programming
- Folds and 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
- Second order folds
- Haskell - A valuable language
- On Functional Programming
- foldr, foldl
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
= 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
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
Monads and arrows
- 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
Monad transformers
Comonads
Error handling and exceptions
Types
- 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
Web
- Haskell and Web Applications
- Ruby and Haskell: write your Rails backend code in Haskell instead of C
- Writing a Simple Search Engine in Haskell
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