I do not agree. I think the main characteristic is use of side-effect-free functions, which the article illustrates nicely.
Of course it will be “more functional” if you write in Clojure or Scheme. Or go hardcore with Haskell. But as John Carmack wrote, you can practice functional programming in C++:
Very few languages (or programmers!) are able to check that a function doesn’t have side effects. In particular, checking that a function doesn’t diverge generally requires a proof assistant, like in F* and Lean.
Your definition of functional programming is as valid as any, but it’s so strict that even Haskell would be mid-tier in the functional ranking.
I do not agree. I think the main characteristic is use of side-effect-free functions, which the article illustrates nicely.
Of course it will be “more functional” if you write in Clojure or Scheme. Or go hardcore with Haskell. But as John Carmack wrote, you can practice functional programming in C++:
http://sevangelatos.com/john-carmack-on/
Very few languages (or programmers!) are able to check that a function doesn’t have side effects. In particular, checking that a function doesn’t diverge generally requires a proof assistant, like in F* and Lean.
Your definition of functional programming is as valid as any, but it’s so strict that even Haskell would be mid-tier in the functional ranking.