Underwater

Here is an old blog post of mine from March 4, 2011. Some of the references are quite dated now, but the feeling is still the same, so here it is again. Remember on Fear Factor when they used have people go underwater and pick a lock or solve a…

F-Words Slides

Thanks to everyone who came to my "F-Words" talk on functional programming terms at CoderFaire Tennessee. Here are the slides. https://docs.google.com/presentation/d/1CP8I2rr4ZuQ1l7iJz7MTbJXTXdFoVHug7QRw7Mdzpgc/edit?usp=sharing…

Partial Application vs. Currying

Is the entire world of aspiring functional programmers generally confused about partial function application and currying, or is it just me? I like to feel well-informed when I think to myself that these two are not the same thing, but I still couldn't tell you what the difference is. To…

Magic Not in the Monad

I am recently coming to grips with a foundational misconception I have been entertaining about monads, possibly since I first heard the term. I am not a category theorist, and I first encountered monads in the context of functional programming. For me the monad has always been shrouded in mystery…

Rebuilding Haskell in C#: Functors

Look out; I've been digging into Haskell again. I enjoy learning about Haskell, but more than that, I enjoy learning to think in a functional way. Haskell is a particularly good language to facilitate that, as it is arguably the most functional of functional languages. It boasts "pure" functionality, and…

Polyglot Survival Guide: Erlang, Haskell, F#, and Elixir

Lately I have been bouncing back and forth between Erlang and Haskell, two profoundly significant functional languages that I find both very different and very similar. They are very different in their philosophies and thought patterns, particularly around data types, but both being non-LISPy functional languages, they have enough similarities…