Difference between revisions of "Blog articles"
From HaskellWiki
DonStewart (talk  contribs) (→Functional programming) 
DonStewart (talk  contribs) (→Functional programming) 

Line 12:  Line 12:  
=== Functional programming === 
=== Functional programming === 

−  +  * [[/Functional_programmingArticles about functional programming in general]] 

=== Programming exercises === 
=== Programming exercises === 
Revision as of 04:41, 28 June 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.
Contents
 1 Introductions to Haskell
 2 Comparisons to other languages
 3 Functional programming
 4 Programming exercises
 5 Laziness
 6 Records
 7 IO
 8 Network
 9 Parallelism and Concurrency
 10 Performance
 11 Parsing
 12 Code generation
 13 Monads
 14 Error handling and exceptions
 15 Types
 16 Data structures
 17 Algorithms and techniques
 18 GUIs
 19 Databases
 20 Graphics
 21 Web and XML
 22 Maths
 23 Testing, correctness and proofs
 24 Regular expressions
 25 The foreign function interface
 26 Tips and tricks
 27 Cabal and libraries
 28 Robots and Hardware
 29 Neural networks
Introductions to Haskell
Comparisons to other languages
Functional programming
Programming exercises
 Diff in Haskell
 Introductory Haskell: Solving the SortingItOut Kata
 A Simple RPN Calculator in Haskell
 Eratosthenes sieve
 Software Cipher
 Secret Santas in Haskell I: Preliminaries
 Secret Santas in Haskell II: Orbits and Lists
 Secret Santas in Haskell III: Lather, Rinse, Repeat 1
 The DotMatrix Printhead: a Haskell Toy
 The Revised DotMatrix Printhead
 Run length encoding:
 Overlap function in Haskell for rectangles
 Tying Knots Generically
 A quick and dirty theorem prover in Haskell
 Brainf*k interpreter in Haskell
 FourFours in Haskell
 Using Bayesian filtering instead of 'if' in Haskell
 Prime sieves in Haskell
 Bowling in Haskell
 Norvig's spell checker and idiomatic Haskell
Games
Laziness
Records
IO
 Haskell I/O for imperative programmers
 Directory tree printing:
 Introductory console IO in Haskell
 Listing files in Haskell
 Playing unsafe Haskell
 separating IO from logic  example
 Programming Haskell
 Design Patterns in Haskell: bracket
 7 Rules for IO in Haskell
 File related hacking
Command line arguments
Unix
 Simple Unix Tools in Elegant Haskell
 HSH: a Haskell scripting environment
 Function composition and unix pipes
 Practical Haskell: shell scripting with error handling and privilege separation
 A simple file filter
 Signal handling
Network
Parallelism and Concurrency
 Threads Considered Harmful (discusses The Problem with Threads)
 STM and IO
 Synchronised threads:
 More Haskell parallelism
Performance
Parsing
 Parser combinators
 Monadic parsing
 Adventures in Haskell: the Parsec magic weapon
 Adventures in Haskell: parsing the game world
 Combinator parsing
 Parser with Writer monad
 Simple Parsec Example: HTMangL
 Parsers, Parsec and Haskell
 Interesting parsers in Haskell
 Explicit Typing, Trail Blazing, and Packrat Parsing
 Playing fast and loose with Parsec for parsing in Haskell
 Config file parsing
 Parsing JSON in Haskell
 Write yourself a Scheme in 48 hours
 A beginner with Parsec
Code generation
 Writing x86 code generators with Harpy:
Monads
Error handling and exceptions
 Error handling in Haskell
 Some Very Basic Haskell and Thoughts on Error Diagnosis
 8 ways to report errors in Haskell
 Towards Better Error Handling
Types
 A typebased solution to the 'strings problem'
 Generalised Algebraic Data Types, Phantom Types, and Dependent Types
 Functions, Types, Function Types, and Type Inference
 Building Datatypes in Haskell (part 1)
 Rank2 polymorphism is a strange thing
 Scientific.Dimension: Type Arithmetic and Physical Units in Haskell
Type classes
Data structures
 Queues without pointers
 A Tree Grows Up in Haskell: Building a Dictionary Type
 Haskell Stacks : Two Different Ways
 A counter datatype with constanttime update
 Map fusion: Making Haskell 225% faster
 Roll Your Own Window Manager: Tracking Focus with a Zipper
Strings
Algorithms and techniques
Folds
Dynamic programming
Mutable data
Sections and Currying
GUIs
Databases
Graphics
Web and XML
Maths
Testing, correctness and proofs
 Introduction to QuickCheck
 QuickChecking a window manager
 On Unit Testing and Type Safety
 Robustness and QuickCheck
 Does XMonad crash? On proving pattern coverage with Catch
 Preconditions on XMonad
Regular expressions
The foreign function interface
 Simple demonstration of Haskell FFI
 C and Haskell sitting in a tree
 Haskell and C: functions returning more than one value
Tips and tricks
Cabal and libraries
 Cabal and rpms
 Getting started with installing thirdparty Haskell packages
 The lambda revolution: how you can help
 The lambda revolution, Episode V, the deb strikes back
 Questions on Haskell Style (and Polynomials redux)
 Using the Haskell package system
 How To Install Haskell Haddock on Mac OS X