Confused about definition of Vector Field as map of smooth functions 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?
 A: Here is an answer from the dynamical systems point of view.
Each (smooth) vector field $X$ on the manifold $M$ gives a (local) flow; so that $M$ is the phase space of a certain dynamical system and each point on the manifold moves according to the direction given by the vector field.
Each smooth function $f:M\to \mathbb{R}$ on the manifold is an observable; any such $f$ associates a numerical value to each point on the manifold. Under the dynamics determined by $X$, given an observable $f$, one can ask how the values $f$ prints change. So if the point $x\in M$ moves to point $x(t)\in M$ by time $t$ along $X$ ($\dagger$), we can consider the function $\mathbb{R}\to \mathbb{R}, t\mapsto f(x(t))$. Note that here the real line that is the domain is the time variable, whereas the real line that is the target is the observed numerical values. Differentiating and evaluating this function at time-$0$ gives us the infinitesimal rate of change $X(f)$ of the observable along the dynamics; but a priori this infinitesimal rate of change may depend on the initial position $x$, so that $X(f)$ is an observable in and of itself.
($\dagger$) The so-called Existence and Uniqueness theorem in ODE's guarantees that, once a (smooth) vector field $X$ is determined, for any initial position $x\in X$, and at least for small time values $t$ the point $x(t)$ is uniquely determined; and further, the dependency of $x(t)$ on $t$ is smooth.
A: 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.
A: It's important to distinguish between the variables when it comes to derivatives. There is a location, a direction, a linear approximation, and a slope, to name a few. Here is my understanding of the situation.
In the case you mentioned, we have a flow through a vector field, which is a parameterized curve on the manifold, i.e. a smooth function. We then map to a tangent vector at each point of the curve. The result
$$
M \ni \gamma(t)=p \longmapsto v_p\in  \dot\gamma(t) \in TM=\cup_{p\in M}T_pM 
$$
maps curves to their derivatives as elements of the vector bundle. If the paths $t\longmapsto \gamma(t)$ are smooth, so are their directional derivatives $t\longmapsto \dot\gamma(t)$. Note that each point in time $t$ corresponds to a point $p$ on the manifold.
