# Question on using Array

I could do

vars3d = Array[Through[{x, y, z}@#] &, 5]


to obtain

{{x, y, z}, {x, y, z}, {x, y, z}, {x, y, z}, {x, y, z}}


I'd tried to obtain the following (expected output)

  {{x, y, z}, {x, y, z}, {x, y, z}}


by doing

vl = {6, 9, 10}
vars3d = Array[Through[{x, y, z}@#] &, vl] # this isn't right.


I would like to know how to obtain the expected output.

If you have to use Array:

Array[Through @ {x, y, z} @ vl[[#]] &, Length @ vl]

 {{x, y, z}, {x, y, z}, {x, y, z}}


Also:

f = Through /@ # /@ #2 &;

f[{x, y, z}, vl]

 {{x, y, z}, {x, y, z}, {x, y, z}}


I can see at least three ways:

Through[{x, y, z}[#]] & /@ vl


Or alternatively:

Transpose[# /@ vl & /@ {x, y, z}]


Or alternatively:

Outer[#2[#1]&, vl, {x, y, z}]

Clear["Global*"]

vl = {6, 9, 10};

vars3d = Array[Through[{x, y, z}@vl[[#]]] &, 3]

(* {{x, y, z}, {x, y, z}, {x, y, z}} *)

{x[#], y[#], z[#]} & /@ vl

(* {{x, y, z}, {x, y, z}, {x, y, z}} *)

Table[{x[n], y[n], z[n]}, {n, vl}]

(* {{x, y, z}, {x, y, z}, {x, y, z}} *)

% == %% == %%%

(* True *)
`