> This is actually not so strange– you can think of many structures as functions. For example, you can think of a number 3 as a function. When you multiply it by things, it makes them three times bigger.
I don't see how 3 can be a function from this example. "3*" (partially applied multiplication by 3) looks more like it.
Matrices and vectors as functions? Yeah, if the argument is within bounds. That makes it just an indexing operation.
(I guess one can view 3 as a one element vector but that sounds like a degenerate case)
Intuitively, natural numbers come from and are defined by counting, and that implies that "3" means inherently that something (could be anything) happened or was repeated three times. For example, if you have three apples, that means that you can identify one particular apple that you have, then do that again, then do that again.
Adding a unit to a number is like adding further information on what it is that is being repeated. Three pairs of apples? You just invented the number six!
The meaning of doing something three times (most abstractly: applying the successor function) is already inherent in the meaning of three, so multiplication isn't something that has to be added on top. It's already in there.
Importantly matrix multiplication is the same as function composition of the linear functions, hence the analogy to functions that multiply by a factor.
Seems trivial but among other things it implies associativity, which is not quite trivial for larger matrices.
I think the mathematical concept that you are looking for is that of the dual space. Essentially if you have a vector space V, you can construct a dual space V* where the elements of the dual space are functions taking elements of V to the underlying field F, and under certain conditions these spaces are isomorphic (the same) - so there is a 1:1 correspondence between elements of the vector space and the functions in the dual space.
Hmm you're right, I didn't quite explain it well. The idea is that you can think of `3` as a function that makes thing three times bigger, and think of `*` as a function application operator. So `3*x` is equivalent to `three(x)`. I'll think on this more and change the wording to try and make this more clear.
I don't see how 3 can be a function from this example. "3*" (partially applied multiplication by 3) looks more like it.
Matrices and vectors as functions? Yeah, if the argument is within bounds. That makes it just an indexing operation.
(I guess one can view 3 as a one element vector but that sounds like a degenerate case)
Or maybe I'm missing something...?