@wswain You wrote:
- The original array elements were of a text(string) type, ...
Yes, that's correct.
- ... but you use subsindets to "transform" the list elements to string.
No, that's incorrect. The second argument to subsindets, string in this case, tells the command to look for objects of type string in its first argument, the list. Hence, the list must already contain strings for this to work.
- Can you explain the "transformer" and "rest" arguments ...
The "rest" argument is not used in this example. If it had been used, it would be a constant (often an option) that would be the fourth argument of subsindets and passed as the second argument to the transformer.
- ... how you know a valid transformer operator (in this case 'string') ,,,
You mean operand, not "operator". The subsindets command only passes to the transformer objects of the correct type, string in this case, specified in its second argument.
- ... vs it just acting on the elements?
Indeed, subsindets is overkill in this flat, linear case. It could be replaced (in Maple 2018 or later I believe) by
map(index, [seq](Array3[1, 2..]), [5..])
No, u-> u[5..] is precisely the substring operation that does remove characters 1-4.