You can write functional code in any language, just as you&#x27;ve shown.  But your mistake <i>perfectly</i> elucidates the point.  When you call a function in a functional language, you know the variable you pass as the parameter won&#x27;t be mutated.  When you call a function in a non-functional language, you only hope it won&#x27;t.<p>And even when the type system allows you to know the input variable won&#x27;t be mutated (say, passing by copy in C++), you don&#x27;t know what other kinds of side-effects the function may be having.