Why isn't lambda notation popular among mathematicians?

7.9k Views Asked by At

I am relatively new to the world of academical mathematics, but I have noticed that most, if not all, mathematical textbooks that I've had the chance to come across, seem completely oblivious to the existence of lambda notation.

More specifically, in a linear algebra course I'm taking, I found it a lot easier to understand "higher order functionals" from the second dual space, by putting them in lambda expressions. It makes a lot more sense to me to put them in the neat, clear notation of lambda expressions, rather than in multiple variable functions where not all the arguments are of the same "class" as some are linear functionals and others are vectors. For example, consider the canonical isomorphism - $$A:V \rightarrow V^{**}$$

It would usually be expressed by $$Av(f) = f(v)$$ This was a notation I found particularly difficult to understand at first as there are several processes taking place "under the hood", that can be put a lot more clearly, in my opinion, this way:

$$A = \lambda v \in V. \lambda f \in V^{*}. f(v)$$

I agree that this notation may become tedious and over-explanatory over time, but as a first introduction of the concept I find it a lot easier as it makes it very clear what goes where.

My question is, basically, why isn't this widespread, super popular notation in the world of computer science, not as popular in the field of mathematics? Or is it, and I'm just not aware?

2

There are 2 best solutions below

16
On BEST ANSWER

As Derek already said, there is no essential difference between functions $A\times B \to C$ and functions $A\to (B \to C)$ via Currying (this is also more abstractly expressed by the universal property of an exponential which unifies the set-theoretical currying and currying in a typed lambda calculus).

On the notational side of things, I personally prefer $x\mapsto f(x)$ to $\lambda x. f(x)$ and I suspect many other mathematicians feel the same (especially since $\lambda$ is such a commonly used letter).


EDIT: (now that my answer stopped being one, let me add some rambling that the 29 people so far have not upvoted for):

I'm guessing many mathematicians are less "comfortable" with nested expressions like $v\mapsto (f \mapsto f(v))$. That would be nothing extraordinary, since there are various concepts that some mathematicians feel less comfortable about. Here are two (unrelated) things that I have encountered:

  • empty metric spaces: Some people deliberately require metric spaces to be non-empty which is a nuisance: given a metric space $(X,d)$ and $Y\subseteq X$, $(Y,d|_{Y^2})$ is a metric space again... unless of course $Y=\emptyset$; apparently it doesn't feel "right" for metric spaces to be empty
  • $f(x)$ instead of $f$: Some people refer to a function $f$ as $f(x)$; this is (unfortunately) what I learned in high school and is (rein)forced by notation like $\frac{d f(x)}{d x}$ and $\int f(x) \,dx$

Although, your example:

Let $A : V\to V^{**}$ such that $Av(f) = f(v)$ for all $v\in V$ and $f\in V^*$

is fine and not hard to understand, in my opinion. For every $v\in V$ we have $Av\in V^{**}$, i.e. $Av : V^* \to \mathbb K$. Hence we can plug in an $f\in V^*$ to get $f(v) \in \mathbb{K}$. If the author thinks it is easy to understand and is more used to it than $v\mapsto (f \mapsto f(v))$ then they would obviously have no reason to change the notation.

So the reason why $v\mapsto (f\mapsto f(v))$ (or a variant thereof) is not used as much is probably: "I'm not used to this notation and I'm perfectly happy with mine."

By the way, my personal favourite is also not: $$A : V \to V^{**}, v \mapsto (f\mapsto f(v))$$ but $$A : V\to V^{**}, v\mapsto \_(v)$$ where it is implied that $\_$ is a placeholder, i.e. $\_(v) : V^* \to \mathbb{K}, f\to f(v)$.

8
On

Lambda calculus is related with computer science through and through. To quote Wikipedia:

Lambda calculus (also written as λ-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution.

Highlights mine. Here, "computation", "application" and "substitution" are very well defined operations on symbols as understood in CS. That is literally what lambda calculus is all about, to start out with: to reason about substituting symbols in formal languages.

Processes like Currying are there because they have relatively practical applications - for example, they make abstract reasoning easier (by reducing all lambdas with multiple arguments to ones with single arguments). "Meta" topics like lazy evalation, typing, strictness etc. can all be explored in the context of lambda calculus and have little impact on general mathematic formulae. For CS, it is important to be super exact with these things, as computers, basically, are machines for manipulating symbols.

So, lambdas have use for the theoretical computer linguist / computer scientist / logician; on the surface you could probably use the notation for general mathematics, but many of the advanced "benefits" do not transfer (or at least not in a helpful manner). In most parts of mathematics, especially applied mathematics (physics...), the question of how exactly to "apply" and "substitute" variables is crystal clear and of little interest to anybody - it is often quite usual to skip writing bound variables completely.

Oh, and the other answer: people are just used to the usual representation. Plenty of mathematical areas tend to have their own notations for quite similar things. It's just how it is.