Ignore all that. Functional code is characterised by one thing: the absence of side effects. It doesn’t rely on data outside the current function, and it doesn’t change data that exists outside the current function. Every other “functional” thing can be derived from this property. Use it as a guide rope as you learn.

Post a response on your own site? Send me a webmention!


mdhughes

💬

@eli In the sense you can derive all math from Lambda Calculus, yes, sorta, but in practice: Functional programming is about calling recursive functions instead of control structures. Most Scheme/LISP code has "side effects" (which means it's doing useful work).

eli

💬

@mdhughes you are totally right -- I am a dork for functional programming (weird for someone who, until very recently, wrote mostly PHP). What I appriciated about this article, though, is that she doesn't get bogged down in a specific language's features. I think that the author does a really solid job explaining the core concept of functional programmnig in a conscise way.

Content: CC BY-SA 4.0