Difference between revisions of "Blog articles"
Jump to navigation
Jump to search
DonStewart (talk | contribs) |
DonStewart (talk | contribs) |
||
Line 16: | Line 16: | ||
=== Programming exercises === |
=== Programming exercises === |
||
+ | * [[/Exercises|Haskell 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://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 === |
=== Laziness === |
Revision as of 04:43, 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.
Introductions to Haskell
Comparisons to other languages
Functional programming
Programming exercises
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 type-based 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)
- Rank-2 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 constant-time 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 third-party 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