Tagged in


What it was like writing my first "real" Haskell program

Sometimes, doing the hard thing pays off.

I spent much of my spare time in 2018 studying Haskell. There are a number of good resources, but it was the hardest self-teaching effort I've made.

Did I learn anything? Was it worth it?

In order to find out, I spent the …

Template for typeclass validation in Haskell

Haskell is the toughest thing I've set out to learn so far. Haskell from First Principles has done a great job of building up my understanding a piece at a time. The author breaks down the complexity and instills comprehension without hand waving metaphors, so you earn a good intuitive …

Codewars - Land Perimeter

The Land-Perimeter challenge from Codewars is slightly different from the others I've mentioned; it effectively needs you to produce results from a list of lists, where the relationship between a given item and its peers is important. I tried this one in Haskell first, since the approach in that language …

Codewars - Odd Integer

"Find the integer that appears an odd number of times in this list," says Codewars. "Sure," I say, "this ought to be fun."

Again, playing with Haskell and how I fare with it compared to Python.

Is it really a spoiler?


def find_it(seq):
  """Given a sequence of integers …

Codewars - Sierpinski's Gasket

The Codewars Sierpinski's Gasket challenge asks us to draw Sierpinski's triangle using the letter "L" and spaces. Per usual I'm trying it in both Python and Haskell; this time I solved it in Python first.

Hea come da spoilers.


def sierpinski(x):
  """Produce a 'triangle' of Ls, recursively x …

Codewars - Tongues

Per previous notes, I'm playing with Haskell. In particular, how does learning Haskell feel as someone who is reasonably comfortable with Python and a few similar languages?

For this round I worked through the "Tongues" challenge. The goal is to replace the characters in a string with other characters, according …

Codewars - Parentheses

The Codewars Valid Parentheses challenge is to evaluate a string containing parentheses, returning true if they are properly balanced and false if they aren't. Nice fit to feel how beginner level Haskell compares to intermediate Python.

Here there be spoilers.


My solution was simple: iterate over every characater in …

Haskell and Python

For several years, I was a Linux systems administrator. After I earned some programming skills, I spent some time doing back-end web development. When I was a sysadmin, most of the programming I did revolved around automating various aspects of deployment and writing custom command-line tools to interface between various …