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.
-
Part 1: Kris Jenkins, "What is Functional Programming?", 2015 http://blog.jenkster.com/2015/12/what-is-functional-programming.html 1900 words
-
Part 2: Kris Jenkins "Which Programming Languages Are Functional?", 2015 http://blog.jenkster.com/2015/12/which-programming-languages-are-functional.html 2300 words
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."
-
Mary Rose Cook, "A practical introduction to functional programming", 2014 (?) https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming 3600 words
-
Ben Moseley, Peter Marks, "Out of the Tar Pit", 2006 http://curtclifton.net/papers/MoseleyMarks06a.pdf
-
Audio recording of interview: "John Hughes on Why Functional Programming Matters!", 2010 https://www.infoq.com/interviews/john-hughes-fp 38 minutes
-
John Hughes, "Why Functional Programming Matters", 1989 https://www.cs.kent.ac.uk/people/staff/dat/miranda/whyfp90.pdf
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
- John Backus, "Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs", 1978 https://www.thocp.net/biographies/papers/backus_turingaward_lecture.pdf
This is an article version of John Backus's Turing Award lecture.
- Philip Nilsson, "Git is a purely functional data structure", 2013 https://blog.jayway.com/2013/03/03/git-is-a-purely-functional-data-structure/
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://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: