A functional language

Listened to the latest This Developer’s Life yesterday. “Education“. I enjoyed especially the Seth Juarez interview.

Along with a bunch of useful advice and insight on how to think about school, Seth recommends every programmer should learn 3 languages: a strongly-typed compiled language, a dynamic language and a functional language.

I’ve got the first two well covered with multiple languages for each, but besides a bit of Scheme in school (nothing more than the usual trivial toy problems they give you to supposedly learn anything), I’ve never really delved into functional languages.

So learning one might be a good goal to set for myself. That leaves me with two questions to get started: what language? and what project?

I can kinda learn a language by reading books or whatever, but that’s a pretty shallow surface understanding. I need a project to really get into it. Now I don’t particularly need more projects to get into, but maybe it’s something I can putter around with when I’m just hanging out at Kwartzlab making myself accessible to people.

The problem is what project? I actually understand why and how functional languages are useful these days, but none of the half-dozen or so project ideas I have backburnered jump out as screaming for a functional implementation. So what to do will require a bit of thought.

The more fun problem is picking a language. I can hear Eric‘s voice screaming “Haskell!” right about now. I’ve also heard good things about Scala. And Erlang. Then there’s OCaml and Lua and good ol’ Lisp.

Have to think about it. I have a Python project I’ve been slowly getting started on that would really help me out at work when it’s done. After that, I’ll look at functional a bit more, I think.

4 thoughts on “A functional language”

  1. Learn You a Haskell for Great Good! http://learnyouahaskell.com/

    Sadly, I don’t have resources for other languages. Lisp is good too, I haven’t used Scala yet, I wouldn’t start on Erlang, and Lua’s not really purely functional.

    Haskell is strongly-typed (probably moreso than any language you’ve used yet), and Lisp isn’t. Those are the main differences as I see them.

    Good luck!



  2. Two suggestions:

    • Clojure for your first functional language
    • Coderloop.com for projects

    I started with Clojure before diving into Scala. Scala is really nice, but its mix of functional and OO makes it not so great for learning functional concepts. I’d also recommend The Joy of Clojure for a book, although there are a lot of resources on the web as well.

    If I’m not mistaken, Coderloop has support for Haskell as well, so you could try both. :)

Comments are closed.