编程的函数和数学的函数为什么都叫函数？
在数学上，最早将 function 一词翻译成函数，是清朝数学家李善兰。数学的 function指一个量随着另外的量的变化而变化，换句话说，一个量包含在另一些量当中。函数，也就是含数。中文的函，有盒子，用来装东西的意思，也可引申成包含。function在数学上翻译成函数也算贴切。

最早研究计算机那批人，很多从数学系转过去的。编程中的 function也直接采用了数学上的翻译，其实有点误导。但也难怪，计算机设计之初就是用来解决数学问题。

英文中 function, 也有完成一定功能，起作用的意思。编程语境中，function 一词更应该理解成，这代码完成某种功能。

数学上的 function，是固定的输入，就对应固定的输出，中间不会改变状态。而编程上的function，只是完成某个功能，中间可以修改状态。假如类似数学上的意义，完全不修改状态，会叫成纯函数（pure function）以作强调。