Towards a Better Notation for Mathematics (2010) [pdf]
A lot of the problems with mathematical notation, I think, are solved problems in programming languages. Mathematicians could learn a lot from programmers in this regard<p>- Variable Scope. In mathematical writing, the convention is that every variable is a global variable - and in a paper you quicky run out of variable names to use. There should be a way to declare the scope of a variable. For this chapter only, x is this vector.<p>- Strict Typing. You skim a paper, and you see &quot;x + y&quot;. But what is x? a matrix, a vector, a scalar, an operator, a set, a random variable, you have no idea. The &quot;+&quot; operator is so overloaded x and y could be anything. Having to hunt down the definitions for every variable is a time consuming and frankly wasteful process. Conventions are built up around this (upper case letters A,B at the beginning of the alphabet are matrices, but upper case letters at the end X,Y are random variables) but they are mostly rater silly. There needs to be an easy way to infer the type of a variable quickly.<p>- Anonymous Objects. There is no way to declare a function without either giving a name to it (f(x) = x^2) or at least declaring its input symbols (x |=&gt; x^2). But you can&#x27;t go, say
(x |=&gt; x^2)(y). Using a symbol to represent a disposable function seems a waste of a valuable global variable (see again, 1) and is inelegant.