Did you know about type hints?

Did you know, you don't need type hints? No! Really! You don't need them. There is only one situation where you might need them: on call sites for host interop.

Published by Meikel Brandmeyer on .

A field trip into logic programming

Chris Houser got his first problem accepted at 4clojure. I decided to give core.logic a try—David Nolen's awesome logic programming framework for Clojure. And surprisingly I ended up with a working solution.

Published by Meikel Brandmeyer on .

Separation of Concerns

Recent wisdom” has it, that protocol functions should be a low-level interface. Of course I didn't go with this statement in my ignorance. Luckily there is always a Christophe around to enlighten me.

This wisdom actually isn't “recent.” It is quite old and you can find it in many object-oriented language libraries. And as one additional level of indirection solves every problem, this boils down to the one cause of bad design: lack of separation of concerns.

Published by Meikel Brandmeyer on .

On Types

Being dynamically typed doesn't mean that there are no types. And in fact, pretending that there are no types gives raise to a number of problems, like unclear semantics of a function and such.

Let's explore an example from the heart of Clojure.

Published by Meikel Brandmeyer on .

Beauty in a bug?

I must confess that I haven't checked who provided the core implementation of partition-by (presumably Rich). But whoever it was: he clearly knows what he's doing.

However there is still a bug spoiling the show a little bit. The investigations lead us directly to the basic question of how partition-by should behave.

Published by Meikel Brandmeyer on .