Skip to content

Latest commit

 

History

History
104 lines (65 loc) · 3.87 KB

why-functional-programming.md

File metadata and controls

104 lines (65 loc) · 3.87 KB

Introduction

I will try to keep these links valid, but of course Internet searches for the title and authors, and/or the Internet Archive Wayback Machine, may help you find results if they become stale.

This is a list of articles (or longer works) attempting to explain the benefits of functional programming, meaning: using a programming language that encourages or requires immutable data and pure functions. For example, Haskell nearly restricts you to these things, whereas Clojure makes it straightforward and idiomatic to write most of your code in this way, while mixing in bits of mutability and side effects where you find it uesful.

Nice to do some time: Add notes of page/word count for these, or durations of recordings, so people wanting a quick read can have an idea of what they are getting into. Also add a few notes of the background knowledge expected by each.

Why use functional programming?

Author's note: "This is my take on what functional programming really is, in a way that will make sense to a jobbing programmer just trying to Get Stuff Done."

ACM Digital library link (not a link to the paper unless you pay, or are an ACM member): https://dl.acm.org/citation.cfm?id=63411

This is an article version of John Backus's Turing Award lecture.

Other related works

TBD: Consider these for inclusion in the list above. I haven't read them yet.

https://hackernoon.com/why-functional-programming-matters-c647f56a7691

http://www.haskellforall.com/2012/08/the-category-design-pattern.html

https://www.business2community.com/brandviews/upwork/functional-programming-what-is-it-and-why-does-it-matter-02131733

https://dev.to/leandrotk_/functional-programming-principles-in-javascript-26g7

Critique of functional programming: Erik Meijer, "The Curse of the Excluded Middle", 2014 https://queue.acm.org/detail.cfm?id=2611829

James Hague, "Programming in the twenty-first century", series of blog articles https://prog21.dadgum.com/

(James Hague may be more in the pro-functional programming than against camp. I haven't read enough of his articles to know yet. His article "Do You Really Want to be Doing This When You're 50?" could be taken as examples of why lots of today's programming is draining on one's mind in the long term. Rich Hickey's motivation for creating Clojure was to find a way to do programming that he would still want to do it, versus give up on programming and do something else, because it was too difficult for reasons of the way the programming languages work.)

More off-topic and maybe should be in a separate list: Design Patterns in Lisp family languages:

http://mishadoff.com/blog/clojure-design-patterns/