I'm confused about the definition of vector field on a manifold. I've always (intuitively) understood it as a map from a point $p$ in the manifold $M$ to a vector $X(p)$ in the the tangent space $T_p$.
I'm trying to understand the definition of a vector field $X$ as a linear map of smooth functions: $$X: C^{\infty}(M)\rightarrow C^{\infty}(M)$$ that satisfies the Leibniz rule, which seems to be called a derivation.
In particular, I'm following the (very brief) material introduced in Sean Carrol's Introduction to General Relativity.
Here it is said:
Since a vector at a point can be thought of as a directional derivative operator along a path through that point, it should be clear that a vector field defines a map from smooth functions to smooth functions all over the manifold, by taking a derivative at each point.
The tangent space at $p$ is identified with the directional derivatives of smooth functions at that point. What I don't understand is the role of the smooth functions argument. What do these functions do, and how do they actually come into play?
Take for example $M=\mathbb{R}^n$. How do you define a constant vector field $X\equiv v \in \mathbb{R}^n$ on this manifold following the definition above? What are the functions that $X$ takes as arguments and what functions does it give back?
So by smooth functions, it's generally meant functions $f: M \to \mathbb{R}$ that are smooth. The smooth functions don't do anything in and of themselves other than providing an object on which vectors can act. For example, a vector $v \in T_p\mathbb{R}^n$ takes the directional derivative of $f$ in the direction of $v$ at $p$, which I'll denote as $D_vf(p)$. In particular, if $v = (v^1, \dots, v^n)$ where $e_i$ are the standard basis vectors of $\mathbb{R}^n$, then $$ D_vf(p) = \sum_{i = 1}^{n} v^i \frac{ \partial f }{ \partial x^i}(p). $$
We can define a constant vector field $X = v$ on $\mathbb{R}^n$ by defining $X(p) = v \in T_p \mathbb{R}^n$ for each $p \in \mathbb{R}^n$. However, we can also view $X$ as a map from $C^{\infty}( \mathbb{R}^n) \to C^{\infty}( \mathbb{R}^n)$ by defining $X(f)$ to be the smooth function $$ X(f)(p) = D_vf(p). $$ This function is smooth since it is equal to $$ \sum_{i = 1}^{n} v^i \frac{ \partial f }{ \partial x^i}(p). $$ We use this same identification when $X$ is an arbitrary vector field.