听故事学语言 · 第十二章 函数与递归零基础的建议从序章读起。一、一个词的正名先讲一个词。function。数学课上你写过 y=f(x),那个 f 就是它的首字母,1734 年欧拉挑的。可是你去翻英语词典,function 的第一条释义不是函数,是功能。一台机器的 function,是它完成的工作;一个人的 function,是他在队伍里顶的那一摊事。这个词的老家在拉丁文,functio,本义是履行,是执行。英语在 1533 年把它接过去,用的也是这层意思,一份本分的差事。一个明明写着做事的词,怎么就成了数学里的函数?1673 年 8 月,德国人莱布尼茨在一份研究曲线切线的手稿里,头一回把这个词借进数学。曲线旁边立着几段线,切线、法线、纵坐标,每一段在求切线这件事里都办着一份自己的差事,他管这些量叫 function。这份手稿当时没有发表,1690 年代他与约翰·伯努利通信,这个词才在数学家里传开。然后,这个词开始漂移。1734 年欧拉写下 f(x)。1837 年狄利克雷给出今天的定义,x 定则 y 定,连公式都可以不要。词义从「办一份差事」漂成了「一一对应」。1859 年,李善兰在上海墨海书馆与伟烈亚力合译代数教科书,要给 function 起个中文名,他按当时的词义取名。译文里说,凡此变数中函彼变数,则此为彼之函数。函,古汉语就是含,装着。y 这个数里装着 x,所以叫函数。中文名字取的是「装着」的意象。将近三百年后,程序设计语言把