Difference between revisions of "Blog articles"
Jump to navigation
Jump to search
DonStewart (talk | contribs) (→Ruby) |
DonStewart (talk | contribs) |
||
Line 41: | Line 41: | ||
** [http://meta-meta.blogspot.com/2006/12/monads-in-ruby-part-15-identity.html Part 1.5: Identity] |
** [http://meta-meta.blogspot.com/2006/12/monads-in-ruby-part-15-identity.html Part 1.5: Identity] |
||
* [http://rushcheck.rubyforge.org/ RushCheck, a lightweight random testing tool for Ruby similar to QuickCheck] |
* [http://rushcheck.rubyforge.org/ RushCheck, a lightweight random testing tool for Ruby similar to QuickCheck] |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
==== Ada ==== |
==== Ada ==== |
||
Line 135: | Line 132: | ||
* [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/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] |
* [http://praisecurseandrecurse.blogspot.com/2006/12/revised-dot-matrix-printhead.html The Revised Dot-Matrix Printhead] |
||
⚫ | |||
− | * [http://praisecurseandrecurse.blogspot.com/2007/03/haskell-for-short-attention-span-run.html |
+ | ** [http://praisecurseandrecurse.blogspot.com/2007/03/haskell-for-short-attention-span-run.html part 1] |
⚫ | |||
⚫ | |||
* [http://sancho-ex.livejournal.com/7056.html Overlap function in Haskell for rectangles] |
* [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://sigfpe.blogspot.com/2006/12/tying-knots-generically.html Tying Knots Generically] |
Revision as of 14:33, 10 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
- Haskell Study Plan
- 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
- A Haskell study plan
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
- Monad wrangling, and the joy of #haskell
Comparisons to other languages
Ruby
- Ruby vs Haskell: choose what works
- Haskell: open secret in Ruby land
- Monads in Ruby
- RushCheck, a lightweight random testing tool for Ruby similar to QuickCheck
- part 1
Ada
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
Forth
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
- Diff in Haskell
- Introductory Haskell: Solving the Sorting-It-Out Kata
- Fibonacci series one-liner in Haskell
- A Simple RPN Calculator in Haskell
- My first Haskell adventure game!
- 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
- Haskell as a puzzle solver
- Hangman AI in Haskell
- Brainf*k interpreter in Haskell
- FourFours in Haskell
- Using Bayesian filtering instead of 'if' in Haskell
- Haskell Bowling
- Prime sieves in Haskell
Laziness
IO
- Haskell I/O for imperative programmers
- Directory tree printing:
- Introductory console IO in Haskell
- Listing files in Haskell
- separating IO from logic -- example
- Programming Haskell
- Design Patterns in Haskell: bracket
Unix
- Simple Unix Tools in Elegant Haskell
- Introductory Haskell Programming in the UNIX Environment
- HSH: a Haskell scripting environment
- Function composition and unix pipes
- Practical Haskell: shell scripting with error handling and privilege separation
Network
- An IRC client/server in Haskell
- Simple STM TCP server
- Roll your own Haskell IRC bot
- Haskell's 'interact' with TCP sockets
- Simple socket programming:
Concurrency
- Threads
- STM, IO, and a Simple Persistence Model
- Synchronised threads:
Performance
Parsing
- Config file parsing
- Combinator parsing
- Interesting parsers in Haskell
- Parser with Writer monad
- Parser combinators
- Adventures in Haskell: parsing the game world
- Explicit Typing, Trail Blazing, and Packrat Parsing
- Monadic parsing
- Playing fast and loose with Parsec for parsing in Haskell
- Adventures in Haskell: the Parsec magic weapon
- Simple Parsec Example: HTMangL
Monads
- The monad laws
- 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
- 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
- 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 work because they have a tight interface
- Haskell: bootstrapping into a clue about monads
- Why monads matter
- Monads through Pictures
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
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
- A counter datatype with constant-time update
Algorithms and techniques
- Second order folds
- Folds and functional programming
- Fold diagrams
- foldr, foldl
- Dynamic Programming in Haskell
GUIs
Web and XML
- 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
XML, Atom, RSS
- Really simple Atom syndication
- A simple RSS aggregator in 50 lines of Haskell using HXT
- Using the Haskell XML Toolbox
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?
- Don't need the Y combinator
Testing
- Introduction to QuickCheck
- On Unit Testing and Type Safety
- Testing ... testing
- Robustness and QuickCheck
Regular expressions
The foreign function interface
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)