The Occasional Pamphlet
on scholarly communication
Whence function notation?
I begin — in continental style, unmotivated and, frankly, gratuitously — by defining Ackerman's function \(A\) over two integers:
\[ A(m, n) = \left\{ \begin{array}{l}
n + 1 & \mbox{ if $m=0$ } \\
A(m-1, 1) & \mbox{ if $m > 0$ and $n = 0$ } \\
A(m-1, A(m, n-1)) & \mbox{ if $m > 0$ and $n > 0$ }
\end{array} \right. \]
…drawing their equations evanescently in dust and sand…
Image of "Death of Archimedes" from Charles F. Horne, editor, Great Men and Famous Women, Volume 3, 1894. Reproduced by Project Gutenberg. Used by permission.
You'll have appreciated (unconsciously no doubt) that this definition makes repeated use of a notation in which a symbol precedes a parenthesized list of expressions, as for example \(f(a, b, c)\). This configuration represents the application of a function to its arguments. But you knew that. And why? Because everyone who has ever gotten through eighth grade math has been taught this notation. It is inescapable in high school algebra textbooks. It is a standard notation in the most widely used programming languages. It is the very archetype of common mathematical knowledge. It is, for God's sake, in the Common Core. It is to mathematicians as water is to fish — so encompassing as to be invisible.
Something so widespread, so familiar — it's hard to imagine how it could be otherwise. It's difficult to un-see it as anything but function application. But it was not always thus. Someone must have invented this notation, some time in the deep past. Perhaps it came into being when mathematicians were still drawing their equations evanescently in dust and sand. Perhaps all record has been lost of that ur-application that engendered all later function application expressions. Nonetheless, someone must have come up with the idea.
…that ur-application…
Photo from the author.
Surprisingly, the origins of the notation are not shrouded in mystery. The careful and exhaustive scholarship of mathematical historian Florian Cajori (1929, page 267) argues for a particular instance as originating the use of this now ubiquitous notation. Leonhard Euler, the legendary mathematician and perhaps the greatest innovator in successful mathematical notations, proposed the notation first in 1734, in Section 7 of his paper "Additamentum ad Dissertationem de Infinitis Curvis Eiusdem Generis" ["An Addition to the Dissertation Concerning an Infinite Number of Curves of the Same Kind"].
The paper was published in 1740 in Commentarii Academiae Scientarium Imperialis Petropolitanae [Memoirs of the Imperial Academy of Sciences in St. Petersburg], Volume VII, covering the years 1734-35. A visit to the Widener Library stacks produced a copy of the volume, letterpress printed on crisp rag paper, from which I took the image shown above of the notational innovation.
Here is the pertinent sentence (with translation by Ian Bruce.):
Quocirca, si \(f\left(\frac{x}{a} +c\right)\) denotet functionem quamcunque ipsius \(\frac{x}{a} +c\) fiet quoque \(dx − \frac{x\, da}{a}\) integrabile, si multiplicetur per \(\frac{1}{a} f\left(\frac{x}{a} + c\right)\).
[On account of which, if \(f\left(\frac{x}{a} +c\right)\) denotes some function of \(\frac{x}{a} +c\), it also makes \(dx − \frac{x\, da}{a}\) integrable, if it is multiplied by \(\frac{1}{a} f\left(\frac{x}{a} + c\right)\).]
There is the function symbol — the archetypal \(f\), even then, to evoke the concept of function — followed by its argument corralled within simple curves to make clear its extent.
It's seductive to think that there is an inevitability to the notation, but this is an illusion, following from habit. There are alternatives. Leibniz for instance used a boxy square-root-like diacritic over the arguments, with numbers to pick out the function being applied: \( \overline{a; b; c\,} \! | \! \lower .25ex {\underline{\,{}^1\,}} \! | \), and even Euler, in other later work, experimented with interposing a colon between the function and its arguments: \(f : (a, b, c)\). In the computing world, "reverse Polish" notation, found on HP calculators and the programming languages Forth and Postscript, has the function symbol following its arguments: \(a\,b\,c\,f\), whereas the quintessential functional programming language Lisp parenthesizes the function and its arguments: \((f\ a\ b\ c)\).
Finally, ML and its dialects follow Church's lambda calculus in merely concatenating the function and its (single) argument — \(f \, a\) — using parentheses only to disambiguate structure. But even here, Euler's notation stands its ground, for the single argument of a function might itself have components, a 'tuple' of items \(a\), \(b\), and \(c\) perhaps. The tuples might be indicated using an infix comma operator, thus \(a,b,c\). Application of a function to a single tuple argument can then mimic functions of multiple arguments, for instance, \(f (a, b, c)\) — the parentheses required by the low precedence of the tuple forming operator — and we are back once again to Euler's notation. Clever, no? Do you see the lengths to which people will go to adhere to Euler's invention? As much as we might try new notational ideas, this one has staying power.
Florian Cajori. 1929. A History of Mathematical Notations, Volume II. Chicago: Open Court Publishing Company.
Leonhard Euler. 1734. Additamentum ad Dissertationem de Infinitis Curvis Eiusdem Generis. In Commentarii Academiae Scientarium Imperialis Petropolitanae, Volume VII (1734–35), pages 184–202, 1740.
Posted in computer science, writing | 3 Comments »
3 Responses to "Whence function notation?"
Ingo Blechschmidt Says:
There are in fact arguments that one should use the notation "(x)f" instead of "f(x)". This proposal harmonizes the reading direction (from left to right) with the data flow: The input "x" is given to "f" which produces an output.
This is especially useful when composing functions. A complex function "h" might be the composite of simpler functions "f" and "g": "h(x) = g(f(x))". This means that "x" is first given to "f", which produces an intermediate value, which is then given to "g". Notice that the flow of data doesn't match the reading direction. In the alternate proposal, the equation would read "(x)h = ((x)f)g".
In several branches of mathematics, so called "commutative diagrams" are an important visualization aid. Reversing the traditional notation would help with translating those diagrams to formulas and back.
asd Says:
>Because everyone who has ever gotten through eighth grade math has been taught this notation.
"everyone in the US", you mean.
Stuart Shieber Says:
October 2nd, 2015 at 9:50 pm
I'm pretty sure this notation is used (and taught) outside of the US too.
The occasional pamphlet from the virtual writing-desk of Stuart Shieber, on scholarly communication and other topics.
@pmphlt says…
Why the Constitution specifies copyright's exclusive rights "for limited Times" only: web.law.duke.edu/cspd/publicd…
About 3 weeks ago from Stuart Shieber's Twitter · reply · retweet · favorite
Congrats to my grad alma mater @Stanford for their new #openaccess policy, widening the 2010 @StanfordEd policy to the whole university. Fantastic! And thanks go to @StanfordLibs for establishing the new Office of Scholarly Communications. stanford.io/37lKHdB
About 2 months ago from Stuart Shieber's Twitter · reply · retweet · favorite
A prime example of our educators fundamentally missing the point. It would be funny if it weren't so sad. #smh nyti.ms/2IVR9Qh
Here's an idea: Maybe (says @InfoEcon) there should be a market in truth for political ads and social media posts. Liars pay; truth-tellers can signal their honesty backed by bucks. See dl.acm.org/doi/10.1145/34… for details.
@infodocket @AmericanPublish A little more @Auths_Alliance and a little less @AuthorsGuild would be a good idea.
As far as I can tell, to block someone from contacting you via Messages on MacOS, you need to first add the person to your contacts. Is it me, or is this *the stupidest design ever*?
For those interested, here's a better copy. nrs.harvard.edu/urn-3:HUL.Ins… twitter.com/earnmyturns/st…
@grimmelm That book is based on @HarryRoyLewis's CS191 course on "classics of computer science", which he taught at Harvard for the last several years, if you're looking for history in a CS curriculum. An early syllabus: canvas.harvard.edu/courses/34…
Follow @pmphlt
Benlog
DigitalKoans
Earning My Turns
Open Access Archivangelism
Open Access News
Open Reading Frame
2004.11.30: Johns Hopkins University
2007.04.05: Harvard MBB Seminar
2008.06.28: SPARC-ACRL Forum
2008.10.8: Columbia
2008.11.12: CRCS, Harvard
2009.03.26: CalTech
2010.06.28: Communia Conference, Torino, Italy
2010.10.29: Why Books? Radcliffe Institute
2011.01.12: APE 2011, Berlin
2011.01.13: SOAP 2011, Berlin
2011.10.07: Congresso Internacional SIBiUSP 30 Anos, Sao Paulo, Brazil
2011.11.08: Berlin 9
2012.10.22: Berkman, OA Week (w/ Peter Suber)
2012.10.27: In Re Books, New York Law School
2013.09.11: CBC Radio interview
2014.01.26: Festival delle Scienze, Rome, Italy
2014.04.04: Berkman Center Directors panel for CopyrightX
2014.10.10: Office Hours: Gary King and Stuart Shieber on Open Access and Dissertations
2015.04.13: CNI Spring Conference
2015.12.01: Munin Conference, Tromsø, Norway
Archives Select Month January 2018 April 2017 November 2015 September 2015 August 2015 June 2015 May 2015 February 2015 November 2014 September 2014 August 2014 June 2014 April 2014 March 2014 February 2014 November 2013 October 2013 July 2013 May 2013 February 2013 January 2013 November 2012 October 2012 September 2012 June 2012 May 2012 April 2012 March 2012 February 2012 January 2012 December 2011 November 2011 October 2011 September 2011 July 2011 June 2011 April 2011 March 2011 February 2011 January 2011 December 2010 September 2010 August 2010 July 2010 June 2010 May 2010 April 2010 March 2010 February 2010 January 2010 December 2009 October 2009 September 2009 August 2009 July 2009 June 2009 May 2009
Categories Select Category computer science Alan Turing Harry Lewis guest post language computational linguistics writing meta other Lewis Carroll policy politics scholarly communication libraries open access
Theme: Jentri by Phu.