1. 23

Hi Lobsters!

Although I have a working knowledge of this paradigm (enough to make use of it in mixed-paradigm languages such as JavaScript), I’d like to get a firmer theoretical basis for functional programming this season.

To this end, can you recommend books and papers that:

  • are seminal / classic texts;
  • are eloquent and elegantly written; or
  • made you click in regards to the subject?

Much appreciated!

  1.  

  2. 7

    I’d say fundamental papers would be:

    Then building up on top of that:

    1. 2

      Ooooh, thanks! This should have me covered for the season :)

      1. 3

        Thank you, Graham! These look very good. BTW I just got your book yesterday, looking forward to reading it :-)

        1. 2

          Thank you, I hope you enjoy it! Please do send me a message with your questions and feedback :)

      2. 3

        The Implementation of Functional Programming Languages by SPJ is good

        Lambda The Ultimate has a good list of papers on language design that are pretty fundamental.

        1. 1

          Thank you!

        2. 3

          If you’re interested in the theoretical fundamentals of functional programming, you probably want to start with the Lambda Calculus. This introduction by Henk Barendregt should be a good start.

          1. 2

            Thank you! It seems a bit intimidating at first brush, but I’ll give it a shot.

            1. 3

              Yeah, these papers tend to be a bit heavy on the terse syntax. But this is true for any paper in the field, so getting used to notations like this is a good idea. Just don’t expect to read it at the same pace as you would read regular prose. Take your time to truly understand the notation before continuing and it will actually make quite a bit of sense.

              If you want something simpler to begin with, you might want to try The Little Schemer first. This is the book that made the concept of recursion “click” for me. It starts out absurdly simple but it ends with you implementing the Y combinator (which is a “pattern” in lambda calculus). The nice thing about it is that it requires no more than basic high school knowledge but it goes surprisingly deep.

          2. 2

            Category Theory for Programmers by Bartosz Milewski in blog post form in pdf form in print-on-demand form

            I’m working through this now. Very in-depth but still very approachable. There are a number of YouTube videos by the author covering the same topics, so there’s a deep and diverse reference body if something is a sticking point.

            1. 2

              Thanks! This looks to be very thorough.