Ken Iverson

Kenneth Eugene Iverson (17 December 1920 – 19 October 2004) was a Canadian mathematician and computer scientist, noted for the development of APL. He was honored with the Turing Award in 1979 "for his pioneering effort in programming languages and mathematical notation resulting in what the computing field now knows as APL; for his contributions to the implementation of interactive systems, to educational uses of APL, and to programming language theory and practice".

While teaching mathematics, Iverson developed an alternative mathematical notation and later described, in his book A Programming Language, how this could be used for instructing computers. It was based on this book that Larry Breed and Philip Abrams implemented the first interpreter, and it eventually was named A.P.L. acronymising the book title.

Floor and Ceiling
Carl Friedrich Gauss introduced the square bracket notation $$[x]$$ in his third proof of quadratic reciprocity (1808). This remained the standard in mathematics until Iverson introduced the names "floor" and "ceiling" and the corresponding notations $$\lfloor x\rfloor $$ and $$\lceil x \rceil $$ in his 1962 book A Programming Language. The names and notations have gained widespread use in mathematics.

Iverson bracket
In mathematics, the Iverson bracket generalises the Kronecker delta. It converts any logical proposition into a number that is 1 if the proposition is satisfied, and 0 otherwise, and is generally written by putting the proposition inside square brackets:
 * $$[P] = \begin{cases} 1 & \text{if } P \text{ is true;} \\ 0 & \text{otherwise,} \end{cases}$$

where $$P$$ is a statement that can be true or false.

In the context of summation, the notation can be used to write any sum as an infinite sum without limits: If $$P(k)$$ is any property of the integer $$k$$,


 * $$\sum_kf(k)\,[P(k)] = \sum_{P(k)}f(k).$$

Note that by this convention, a summand $$f(k)[\textbf{false}]$$ must evaluate to 0 regardless of whether $$f(k)$$ is defined. Likewise for products:


 * $$\prod_kf(k)^{[P(k)]} = \prod_{P(k)}f(k).$$

While the Iverson bracket was adopted into mainstream mathematics, it's use has not been very widespread. Donald Knuth has argued strongly for its wider use.

In APL, the Iverson bracket is implied in all logical propositions, for example  evaluates to   and   evaluates to.

SHARP APL Technical Notes

 * SATN-36: Direct Definition. 1980-04-20.
 * SATN-41: Composition and Enclosure. 1981-06-20.
 * SATN-42: Determinant-Like Functions Produced by the Dot-Operator. 1982-04-01.
 * SATN-45: Language Extensions of May 1983 (with Bob Bernecky, Eugene McDonnell, Robert Metzger, and J. Henri Schueler). 1983-05-02.