Seed Media Group

Search this blog

Profile

markcc.jpg
Mark Chu-Carroll (aka MarkCC) is a PhD Computer Scientist, who works for Google as a Software Engineer. My professional interests center on programming languages and tools, and how to improve the languages and tools that are used for building complex software systems.

Other Information

Add this blog to my Technorati Favorites!

Recent Posts

Recent Comments

Categories

Blogroll

Old Topic Indices

Great Online Books

Haskell:

Meta out the wazoo: Monads and Monoids

Since I mentioned the idea of monoids as a formal models of computations, John Armstrong made the natural leap ahead, to the connection between monoids and monads - which are a common feature in programming language semantics, and a...

Using Monads for Control: Maybe it's worth a look?

So, after our last installment, describing the theory of monads, and the previous posts, which focused on representing things like state and I/O, I thought it was worth taking a moment to look at a different kind of thing...

Basics: The Turing Machine (with an interpreter!)

As long as I'm doing all of these basics posts, I thought it would be worth explaining just what a Turing machine is. I frequently talk about things being Turing equivalent, and about effective computing systems, and similar things,...

The Theory of Monads and the Monad Laws

As promised, I'm finally going to get to the theory behind monads. As a quick review, the basic idea of the monad in Haskell is a hidden transition function - a monad is, basically, a state transition function. The...

More Monads: Stateful Programming

Time for more monads. In this article, I'm going to show you how to implement a very simple state monad - it's a trivial monad which allows you to use a mutable state consisting of a single integer. Then...

Haskell: A First Step Into Monads

The biggest nightmare for most people learning Haskell is monads. Monads are the key to how you can implement IO, state, parallelism, and sequencing (among numerous other things) in Haskell. The trick is wrapping your head around them....

Haskell: the Basics of Type Classes

One thing that we've seen already in Haskell programs is type classes. Today, we're going to try to take our first look real look at them in detail - both how to use them, and how to define them....

Balanced Binary Trees in Haskell

So, we've built up some pretty nifty binary trees - we can use the binary tree both as the basis of an implementation of a set, or as an implementation of a dictionary. But our implementation has had one...

Tail Recursion: Iteration in Haskell

In Haskell, there are no looping constructs. Instead, there are two alternatives: there are list iteration constructs (like foldl which we've seen before), and tail recursion. Let me say, up front, that in Haskell if you find yourself writing...

A Tree Grows Up in Haskell: Building a Dictionary Type

Last time around, I walked through the implementation of a very simple binary search tree. The implementation that I showed was reasonable, if not great, but it had two major limitations. First, it uses equality testing for the search,...

Building Datatypes in Haskell (part 1)

For this post, I'm doing a bit of an experiment. Haskell includes a "literate" syntax mode. In literate mode, and text that doesn't start with a ">" sign is considered a comment. So this entire post can be copied...

Functions, Types, Function Types, and Type Inference

Haskell is a strongly typed language. In fact, the type system in Haskell is both stricter and more expressive than any type system I've seen for any non-functional language. The moment we get beyond writing trivial integer-based functions, the type...

Simple Functions in Haskell

I wasn't really sure of quite how to start this off. I finally decided to just dive right in with a simple function definition, and then give you a bit of a tour of how Haskell works by showing the...

Haskell Preliminaries: Implementations and Tools

Before getting to the meat of the tutorial, I thought it would be good to provide some setup information in a distinct, easy to find place. This short post will tell you where to find a Haskell implementation and related...

Why Haskell?

Before diving in and starting to explain Haskell, I thought it would be good to take a moment and answer the most important question before we start: Why should you want to learn Haskell? It's always surprised me how many...

Search All Blogs

Blogs in the Network

Top Five: Most Active

  1. Pinellas County, Florida expels science 05.09.2008 · PZ Myers
  2. An hour of radio inanity 05.08.2008 · PZ Myers
  3. Hillary as Psycho Ex-Girlfriend 05.09.2008 · Ed Brayton
  4. What I Saw in Frankenmuth 05.09.2008 · Ed Brayton
  5. Your Friday Dose of Woo: The secret life of plants 05.09.2008 · Orac

Top Science Stories

powered by SEED - seedmagazine.com