The two tensor definitions I'm (newly) familiar with, by transformation rules, and as a map from a tensor product space to the reals, don't tell me what a tensor does, and to the best of my knowledge they don't make it apparent. So, I'm looking for an operational definition, and suggesting the following one -
This question was marked as a duplicate and here I try to explain why I don't think it is. See paragraph 1. Moreover - this definition is different because it defines tensors of rank 2 and above as a means of defining maps from tensor to tensor, and defines the operation of one tensor mapping another as an extension of the angle bracket operator for covectors and vectors (which I denote by >cv, v< as typing them correctly causes them not to print). So, this definition tells you explicitly what a tensor does and how it does it. I think it is much easier to understand if you're starting with no knowledge of tensors.
Scalars are rank 0 tensors.
For tensors of higher rank we start with a n-dimensional vector space V with basis e1, e2,... en and dual covector space V* with basis e1*, e2*,... en*. Vectors and covectors are rank 1 tensors.
A tensor of rank r>1 is a means of defining a linear map from tensors of rank m to tensors of rank n, where m and n are generally < r, but not necessarily, that is, the definition doesn't require it.
A tensor of rank r>1 is a linear combination of dyadic basis tensors of rank r, where a dyadic basis tensor product of rank 1 basis tensors a1 x a2 x a3 x....x ar where each ai is either a basis vector ej of V or a basis covector ej* of V*.
The result of applying one dyadic basis tensor a1 x a2 x a3 x....x ar to another b1 x b2 x b3 x....x bs is computed by evaluating >ar,b1< and if that is not 0, evaluating >ar-1,b2<, and if that is not 0 continuing till one of the dyadic basis tensors (normally b1 x b2 x b3 x....x bs.) is used up, if no 0 was produced the dyadic basis tensor that remains is the result, it's either a 1 or a dyadic basis tensor. Note when evaluating >ar-(k-1),bk< one must be a vector and one a covector, else it's an error.
Note: I'm using non-standard brackets >cv,v< to indicate applying a covector to a vector, the normal angle brackets don't print correctly.
The a dyadic basis tensor eats the b dyadic basis tensor till one of the nibbles is a 0 and the result is 0, or till one is used up and the result is 1 or the part of the a dyadic basis tensor that didn't get a bite (or the b dyadic basis tensor that didn't get bitten).
A tensor A maps tensor B by applying each term (coefficient times dyadic basis tensor) in A to each term in B and multiplying their coefficients when the result is not 0, and summing the resulting terms to get the result of A applied to B.
I think this is how tensors work, and I think this definition does explicitly spell it out and make it clear. But I'd like to have it verified or corrected if necessary.