Difference between revisions of "Blog articles"
Jump to navigation
Jump to search
DonStewart (talk | contribs) |
DonStewart (talk | contribs) |
||
Line 4: | Line 4: | ||
=== Introductions to Haskell === |
=== Introductions to Haskell === |
||
+ | * [/Introductions|Introductions to Haskell] |
||
− | * [http://www.onlamp.com/pub/a/onlamp/2007/05/21/an-introduction-to-haskell---part-1-why-haskell.html ONLamp: An Introduction to Haskell] |
||
− | * [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 ==== |
||
− | |||
− | * [http://blogs.nubgames.com/code/?p=15 Haskell First Impressions] |
||
− | * [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 === |
=== Comparisons to other languages === |
Revision as of 04:36, 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
- [/Introductions|Introductions to Haskell]
Comparisons to other languages
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
- Haskell - A valuable language
- On Functional Programming
- Functional programming is a silver bullet
- Silver Bullets Incoming!
- Computers were invented to keep track of boring things
- Functional programming for the rest of us
- Zen and the Art of Functional Programming
- Thinking in types
Programming exercises
- Diff in Haskell
- Introductory Haskell: Solving the Sorting-It-Out 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 Dot-Matrix Printhead: a Haskell Toy
- The Revised Dot-Matrix 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
HTTP
TCP
- Simple STM TCP server
- Haskell's 'interact' with TCP sockets
- Port Scanner in Haskell
- Simple socket programming:
- On haskell: writing a packet sniffer
- A simple echo server
IRC
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
- The monad laws
- The Trivial Monad
- Tracking tainted data: Homeland Security Threat Level Monad
- Monads: a field guide
- Variable substitution gives a ... monad
- The monad behind every zipper
- Monads for vector spaces, probability and quantum mechanics pt. I
- Monads, Vector Spaces and Quantum Mechanics pt. II
- How to write tolerably efficient optimzation code without really trying...
- Quick interpreters with the Reader monad
- Monads
- More on Haskell, Side Effects and Code Reuse
- A First Step Into Monads
- More Monads: Stateful Programming
- The theory of monads
- A newbie in Haskell land or another monad tutorial
- A newbie in Haskell land : The (->) monad
- Smart classification using Bayesian monads
- 3 open problems with monads
- Monads in 15 minutes: Backtracking and Maybe
- How to make Data.Set a monad
- Monads work because they have a tight interface
- Haskell: bootstrapping into a clue about monads
- Why monads matter
- Monads through Pictures
- Monads as universe helpers
- Simple state monad
- repeat and sequence
- What's a monad?
Monad transformers
- A twisted history of monad transformers
- How To Use Monad Transformers
- Local and global side effects with monad transformers
- Grok monad transformers
- A Simple Game with StateT
Arrows
Comonads
- Comonads and reading from the future
- Evaluating cellular automata is co-monadic
- Understanding comonads
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