I tried to put all the virtues of typed-functional languages in one transparency. But there are so many that you will not be able to read them. So, I decided to expand all these virtues in two transparencies. And this will make it easier.
The general slogan is the following: if you want to understand something, some computational phenomenon expressed using l calculus. Why is this so? l calculus, as we have seen, is the paradigm functional programming languages. And functional programming languages have a very robust and rigorous mathematical foundation deriving especially from geometry, proof theory, constructive-typed theory and category theory. Thus functional languages have a transparent syntax. This is the language of mathematical functions. And functions allow for a powerful abstraction mechanism which naturally induces a notion of locality and privacy.
Functional languages also have a very intuitive execution mechanism. They execute expressions, definitions, specifications to canonical form. They also feature what is called the referential transparency, that is you can substitute equals for equals while preserving the meaning.
Here the classical counter example would be the sentence: Rufus was called this way because of the colour of his beard. And of course, Rufus, which means red, cannot be replaced by King Frederick because the sentence clearly King Frederick was called this way because of the colour of his beard does not really make any sense. So, there are extensional properties, only extensional properties can be involved in referentially transparent languages. This is the case for functional languages.