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 …

Trashinator - Make less trash!

Every year, the City of Philadelphia disposes 1 ton of waste per resident. That is ... impressive. The city has also made it a goal to eliminate litter and landfill use by 2035.

What about us?

How much trash do we generate? What's normal? What's possible? I want to find out …

Trashinator - Graphql + Django Notes

GraphQL is turning out to be a nice alternative to REST, particulary when developing web-application functions that don't merit sharable links. There are plenty of tutorials, this is more a cheat-sheet for the Graphene library as it pertains to Django. If you're not a Django developer, you'll want to sit …

Trashinator - Pre-plan

Taking inspiration from Katie Patrick, I'm building an app to help people make less trash.

It's tempting to dive in and code, especially when you're planning a relatively small application. The catch is, that's how you end up with unfixable design flaws and spaghetti code. I went ahead with some …

Trashinator - Let's do it

If it's called the Trashinator, does it kill trash, or turn stuff into trash?

You wanna change the world? You better be looking at data. Katie Patrick has a class, a book, and some free entry level materials that turn that basic fact into a chance to make a difference …

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 …