Runtime Arguments

Episode 4: Functional Programming - You're probably already doing it

Jim McQuillan & Wolf

Show notes and things to think about:

  1. Functional programing isn't academic.  It isn't overwhelming.  It isn't impossible to use.  It isn't inapplicable to ordinary problems like the ones you're solving right now.
  2. You can use functional techniques in almost any modern programming language.  In fact, you probably already are.
  3. Main pillars of FP:
    1. Pure functions (no side-effects)
    2. Functions are first-class objects (you can pass them as arguments, you can return them as results, you can store them in lists or any other data-structure)
    3. Data is immutable by default
    4. FP languages often provide powerful pattern matching syntax (didn't mention this much in the episode other than briefly noting Python's new match statement)
    5. A couple of things not mentioned: in FP, your code is more about what you want, not about how to get it.  That stack of functions for the sales data example looks declarative, not imperative.
    6. A couple of other things not mentioned: recursion and lazy evaluation.  Not exclusive to FP, but very often available in functional languages.
  4. Papers and explanations about monads might be unreadable, but you're already using them and you already know how they work.
  5. Using FP techniques appropriately can make your code easier to test, harder to break, and possibly even prettier to look at.
  6. There are places in your code right now that you can make better right now with FP.  Do it!

Links:

  • We mentioned a ton of languages.  Most of them have easy to find home pages so I'm not going to list out all the links; but there are a couple of obscure ones


Hosts:
Jim McQuillan can be reached at jam@RuntimeArguments.fm
Wolf can be reached at wolf@RuntimeArguments.fm

Follow us on Mastodon: @RuntimeArguments@hachyderm.io

If you have feedback for us, please send it to feedback@RuntimeArguments.fm

Theme music:

Dawn by nuer self, from the album Digital Sky

People on this episode