# Difference between revisions of "Blog articles"

From HaskellWiki

DonStewart (talk | contribs) (→C#) |
RossPaterson (talk | contribs) (split maths category) |
||

Line 252: | Line 252: | ||

=== Maths === | === Maths === | ||

+ | ==== Haskell for Mathematics ==== | ||

* [http://sigfpe.blogspot.com/2006/09/learn-maths-with-haskell.html Learn Maths with Haskell] | * [http://sigfpe.blogspot.com/2006/09/learn-maths-with-haskell.html Learn Maths with Haskell] | ||

− | |||

− | |||

− | |||

− | |||

− | |||

* [http://sigfpe.blogspot.com/2006/09/practical-synthetic-differential.html Practical Synthetic Differential Geometry] | * [http://sigfpe.blogspot.com/2006/09/practical-synthetic-differential.html Practical Synthetic Differential Geometry] | ||

* [http://sigfpe.blogspot.com/2006/09/more-low-cost-geometric-algebra.html More Low Cost Geometric Algebra] | * [http://sigfpe.blogspot.com/2006/09/more-low-cost-geometric-algebra.html More Low Cost Geometric Algebra] | ||

Line 269: | Line 265: | ||

* [http://blog.mikael.johanssons.org/archive/2006/10/computational-group-theory-in-haskell-1-in-a-series/ Computational Group Theory in Haskell] | * [http://blog.mikael.johanssons.org/archive/2006/10/computational-group-theory-in-haskell-1-in-a-series/ Computational Group Theory in Haskell] | ||

* [http://blog.mikael.johanssons.org/archive/2006/07/carry-bits-and-group-cohomology/ Carry bits and group cohomology] | * [http://blog.mikael.johanssons.org/archive/2006/07/carry-bits-and-group-cohomology/ Carry bits and group cohomology] | ||

− | |||

− | |||

* [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] | ||

* [http://vandreev.wordpress.com/2006/12/04/non-standard-analysis-and-automatic-differentiation/ Non-standard analysis, automatic differentiation, Haskell] | * [http://vandreev.wordpress.com/2006/12/04/non-standard-analysis-and-automatic-differentiation/ Non-standard analysis, automatic differentiation, Haskell] | ||

* [http://www.polyomino.f2s.com/ Haskell for Maths]: commutative algebra, combinatorics, number theory, and group theory | * [http://www.polyomino.f2s.com/ Haskell for Maths]: commutative algebra, combinatorics, number theory, and group theory | ||

* [http://www.serpentine.com/blog/2007/01/11/two-dimensional-spatial-hashing-with-space-filling-curves/ Two-dimensional spatial hashing with space-filling curves] | * [http://www.serpentine.com/blog/2007/01/11/two-dimensional-spatial-hashing-with-space-filling-curves/ Two-dimensional spatial hashing with space-filling curves] | ||

− | * [http://vandreev.wordpress.com/2007/01/07/arithmetic-coding/ | + | * [http://vandreev.wordpress.com/2007/01/07/arithmetic-coding/ Arithmetic 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] | * [http://www.quetzal.com/sambangu/2006/12/polynomials-as-numbers Polynomials as numbers] | ||

Line 285: | Line 279: | ||

** [http://praisecurseandrecurse.blogspot.com/2006/12/divisive-aftermath.html The Divisive Aftermath] | ** [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] | * [http://www.alpheccar.org/en/posts/show/57 Haskell, PDF and penrose tilings] | ||

+ | |||

+ | ==== Mathematics of Haskell ==== | ||

+ | * [http://sigfpe.blogspot.com/2006/11/why-isnt-listt-monad.html Why isn't ListT list a monad?] | ||

+ | * [http://sigfpe.blogspot.com/2006/11/yoneda-lemma.html Reverse Engineering Machines with the Yoneda Lemma] | ||

+ | * [http://sigfpe.blogspot.com/2006/11/variable-substitution-gives.html Variable substitution gives a...] | ||

+ | * [http://sigfpe.blogspot.com/2006/11/from-l-theorem-to-spreadsheet.html From Lb's Theorem to Spreadsheet Evaluation] | ||

+ | * [http://sigfpe.blogspot.com/2006/10/games-strategies-and-self-composition.html Games, Strategies and the Self-Composition of the List Monad.] | ||

+ | * [http://scienceblogs.com/goodmath/2006/09/programs_are_proofs_models_and_1.php Programs are Proofs: Models and Types in Lambda Calculus] | ||

+ | * [http://scienceblogs.com/goodmath/2006/11/why_haskell.php Why Haskell?] | ||

=== Testing === | === Testing === |

## Revision as of 18:24, 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.

## Contents

- 1 Introductions to Haskell
- 2 Comparisons to other languages
- 3 Functional programming
- 4 Programming exercises
- 5 Laziness
- 6 IO
- 7 Network
- 8 Concurrency
- 9 Performance
- 10 Parsing
- 11 Monads
- 12 Error handling and exceptions
- 13 Types
- 14 Data structures
- 15 Combinators
- 16 GUIs
- 17 Web and XML
- 18 Maths
- 19 Testing
- 20 Regular expressions
- 21 The foreign function interface
- 22 Cabal and libraries
- 23 Hardware description languages
- 24 Theory

### 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
- Reconsidering my approach to learning Haskell

#### First impressions

- Haskell First Impressions
- One month in Haskell
- Thoughts on one week in Haskell
- Haskell, first impressions (with sexy results)
- The beauty of Haskell

### Comparisons to other languages

#### 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
- RushCheck, a lightweight random testing tool for Ruby similar to QuickCheck

#### Java

- More Haskell in Java 7 or 8?
- Type classes in Java
- Closures and bottom for Java
- An infinite list in Java
- Maybe monad in Java

#### Eiffel

#### Javascript

#### C

#### C#

- The New Lambda Expressions Feature in C# 3.0
- Immutability, Purity, and Referential Transparency in C#

#### Scala

#### Python

- Haskell versus Python
- Using Haskell in Python: haskellembed
- Understanding Monads Via Python List Comprehensions

#### Scheme

#### Factor

#### Lisp

#### Lua

### 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
- What is so cool about Functional Programming?

### 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
- Fibonacci series one-liner in Haskell
- The Dot-Matrix Printhead: a Haskell Toy
- The Revised Dot-Matrix Printhead
- Secret Santas in Haskell I: Preliminaries
- Secret Santas in Haskell II: Orbits and Lists
- Diff in Haskell
- Eratosthenes sieve
- Overlap function in Haskell for rectangles
- Introductory Haskell: Solving the Sorting-It-Out Kata
- Haskell Bowling
- A Simple RPN Calculator in Haskell
- My first Haskell adventure game!
- Software Cipher

### 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
- separating IO from logic -- example
- Programming Haskell
- Introductory Haskell Programming in the UNIX Environment

### 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
- Adventures in Haskell: parsing the game world
- Adventures in Haskell: the Parsec magic weapon
- Explicit Typing, Trail Blazing, and Packrat Parsing

### Monads

- 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
- A newbie in Haskell land : The (->) monad
- Quick interpreters with the Reader monad
- The monad laws
- Variable substitution gives a ... monad
- Monads: a field guide

#### Monad transformers

- A twisted history of monad transformers
- How To Use Monad Transformers
- Local and global side effects with monad transformers

#### Arrows

#### Comonads

### Error handling and exceptions

### 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

#### Type classes

### Data structures

- Queues without pointers
- A Tree Grows Up in Haskell: Building a Dictionary Type
- Haskell Stacks : Two Different Ways

### Combinators

### GUIs

### Web and XML

- A simple RSS aggregator in 50 lines of Haskell using HXT
- Haskell and Web Applications
- Ruby and Haskell: write your Rails backend code in Haskell instead of C
- Writing a Simple Search Engine in Haskell
- Haskell and the web: some ideas in progress
- A search engine (core) written in Haskell
- Haskell Transactional Cache

### Maths

#### Haskell for Mathematics

- Learn Maths with Haskell
- 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
- 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
- Arithmetic coding in Haskell
- Countable Ordinals in Haskell
- Polynomials as numbers
- The Division Bell
- Haskell, PDF and penrose tilings

#### Mathematics of 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.
- Programs are Proofs: Models and Types in Lambda Calculus
- Why Haskell?

### Testing

### Regular expressions

### The foreign function interface

### 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)