1962 年,曾在哈佛任教、当时在 IBM 工作的加拿大人肯尼斯·艾弗森出版了一本名为《一种编程语言》(A Programming Language)的书。尽管书名如此,它其实是一本讲数学记号的书:一种简洁而精确地书写算法的方法,用新的符号表示对整个数列和数表的运算。几年后,IBM 自己把这套记号变成了计算机可以执行的语言,并以书名为它命名:APL。 下取整、上取整与括号 艾弗森的一些符号离开了 APL,进入了普通数学。最著名的是下取整与上取整这一对: $$\lfloor x \rfloor = \text{不大于 } x \text{ 的最大整数}, \qquad \lceil x \rceil = \text{不小于 } x \text{ 的最小整数}.$$在他之前,人们写 $[x]$ 或“$x$ 的整数部分”,而上取整没有符号。有了这两个符号,需要分几种情况的计算可以写在一行里:$1$ 到 $100$ 之间 $7$ 的倍数有 $\lfloor 100/7 \rfloor = 14$ 个。 另一个符号,艾弗森括号,把一个命题变成一个数: $$[P] = \begin{cases} 1, & P \text{ 为真}, \\ 0, & P \text{ 为假}. \end{cases}$$有了它,“数一数 $1$ 到 $n$ 之间的偶数”就成了一个普通的和 $\sum_{k=1}^{n} [k \text{ 是偶数}]$,而这个和可以用通常的规则来处理。高德纳在 1992 年一篇名为《关于记号的两则札记》(Two notes on notation)的文章中为这种括号辩护,并在与罗纳德·格雷厄姆、奥伦·帕塔什尼克合写的《具体数学》一书中通篇使用它。上一篇中的克罗内克 δ 只是一个特例:$\delta_{ij} = [i = j]$。