Welcome to Functional Paradise!

I first started programming in 1980 on a Heathkit H-8 in Basic (Benton Harbor) when I was 10, and in the intervening 30-odd years I’ve programmed more-or-less competently in Basic, Modula-2, C, Turbo Pascal, Clipper, C++, Rexx, Bourne Shell, Perl, PHP and Javascript.

I’ve also been exposed to many other languages—Forth, COBOL, Fortran, Java, C#, Ruby, Python, and so forth. By exposed I mean I can read and perhaps divine the intent of simple, straightforward code, but wouldn’t easily understand complex code or write anything of any significance.

And of course I’ve probably forgotten most of that stuff anyway—I have no memory of even the barest syntax of Modula-2, say—not that I suppose it matters much: if you look at that list there’s not a whole lot to strongly distinguish one language from another.

Sure, some are strongly typed and some are weakly typed and some are compiled and others aren’t, but in the end they’re all imperative languages (sometimes with functional features baked in), and the ones that I’m really familiar with all fall into the general ALGOL family of languages.

Which is why Haskell has been so interesting to study and attempt to use—which is what I’ve been doing for the last year or so. And I still feel like I’m taking baby steps.

Like a parent dutifully taking home videos of those baby steps, I’ve decided to do a little log of my work with Haskell, both to remind me of what I’ve accomplished and perhaps entertain others.