Why Blockchain Engineers Should Learn Functional Programming

As a software engineer who wants to work with blockchains, you may ask: what languages should I learn?  Answers on the internet (e.g., here, here, and here) mostly recommend prominent languages like C++, Python, Java, and Javascript, and the smart contract language Solidity.  None of them mention any functional languages! …