Perhaps the most beautiful aspect of mathematics is that it applies to literally everything, even things that do not exist in this Universe. In addition to this there are a number of alternative ways to represent reality, with Fourier space and its related transforms being one of the most well-known examples. An alternative to Euclidian vector space is called Hilbert space, as a real or complex inner product space, which is used in e.g. mathematical proofs. In relation to this, [Eli Bendersky] came up with the idea of treating programming language functions as vectors of a sort, so that linear algebra methods can be applied to them.
Of course, to get really nitpicky, by the time you take a function with its arguments and produce an output, it is no longer a vector, but a scalar of some description. Using real numbers as indices also somewhat defeats the whole point and claim of working in a vector space, never mind Hilbert space.
As with anything that touches upon mathematics there are sure to be many highly divisive views, so we’ll leave it at this and allow our esteemed readers to flex their intellectual muscles on this topic. Do you think that the claims made hold water? Does applying linear algebra to every day functions make sense in this manner, perhaps even hold some kind of benefit?

It seems like the linked article only talks about typical “f(x) = y” kinds of functions, not “programming language functions” (lambdas, I interpret this to mean) like the link’s text says!
The former is a (granted, super cool!!) well known thing, but I can’t think of a useful way to make the latter thing work (lambdas as a vector space) 😔
(also im like not a mathematician either and also have been known to not be able to read so i could be missing something significant w this!)
I’ve read Eli’s article, and did not found any suggestion of “treating programming language functions as vectors”.
But, contributing to this line of reasoning:
· Those “programming language functions” must behave like “mathematical functions” (output should be the same for the same arguments, in every evaluation. C-like functions doesn’t fullfil this rule: they can depend of an global var not passed as argument or there can be a dependence on a internal mutable static var. They also can change data which is not their output, having side effects);
· If we use the standard definitions for the sum and product-by-scalar of functions as vectors ( For f and g functions with same domain, b an scalar: f + g defined as (f+g)(x) = f(x) + g(x), b·f defined as (b·f)(x) = b·(f(x)) for all x in domain), then their output must be an vector of some vector space. It’s important to say that in traditional computing it should not be an vector space over the Real or Complex numbers, as we have only finite representations of numbers – It still isn’t an end to the idea, as we have vector spaces over F_2 ( Scalars are single digit binary, vectors are binary numbers of a fixed bit length, with each digit as an coordinate. Sum is bitwise xor, product-by-scalar is “and”-ing each coordinate by the scalar, and you even have a natural product of vectors:bitwise and), and over every F_p for p an prime number.
Got tired of writing babble, bye.
The article seems fine as high-level first introduction to analysis (the mathematical theory of functions, real or complex) but I don’t see how it applies to programming language functions, which aren’t mentioned. In general, most functions aren’t square integrable, a concept explained on the page, so they won’t be part of a Hilbert space.
It seems like the linked article only talks about typical “f(x) = y” kinds of functions, not “programming language functions” (lambdas, I interpret this to mean) like the link’s text says!
The former is a (granted, super cool!!) well known thing, but I can’t think of a useful way to make the latter thing work (lambdas as a vector space) 😔
(also im like not a mathematician either and also have been known to not be able to read so i could be missing something significant w this!)
Yeah, the Author of this hackaday post apparently didnt’t know that “Functions” is a term used outside of programming languages… Maybe best to learn basic math before posting about advanced math?
“..with fourier space and its smurfed smurfs being one of the most well-known examples”
I love the diversity of HAD.
Sorry Maya, I think you got this one wrong.
Hmm. I say let Eli play and he could figure out something really fun.
Could I poke holes in this? I think so. I’m more curious what they are trying to do with this view of the world.
Many times in my life I’ve uncovered very interesting mathematical worlds by just trying something crazy.
I’d be very interested in a discrete form of hilbert space. Or a mapping of arguments to information theory. Or why the cardinality of function arguments matters. I don’t think they should stop but I do want to see more reasons for me to suspend disbelief. Hopefully there’s a follow up
Every time I encounter a mathematical concept I don’t know, I look it up. From Google AI:
“The phrase “fourier space smurfs” is a recent and obscure internet in-joke that emerged from a comment on a tech blog. It is a nonsensical phrase used to humorously contrast the complexity of advanced mathematical or scientific concepts (Fourier space) with a simple pop culture reference (Smurfs).”
“The specific origin is a December 2025 comment on a Hackaday post about treating functions as vectors in Hilbert space, where a user sarcastically mentioned “…with fourier space and its smurfed smurfs being one of the most well-known examples”. The phrase has no meaning in actual scientific or mathematical contexts.”