Apply multiple functions to same list
Also,
y = {1, 2, 3, 4, 5, 6, 7};
#[y] & /@ {Max, Min, Median, Mean}
(* {7, 1, 4, 4} *)
EDIT: comparing the timings:
n = 100000;
Do[Through[{Max, Min, Median, Mean}[y]], n] // AbsoluteTiming
(* {0.548089, Null} *)
Do[#[y] & /@ {Max, Min, Median, Mean}, n] // AbsoluteTiming
(* {0.709574, Null} *)
Through
is more efficient, at least in this case.
You can use Through
.
Through[{Max, Min, Median, Mean}[y]]
(* {7, 1, 4, 4} *)
Hope this helps.
Query
offers a reasonable syntax for this case:
y = {1, 2, 3, 4, 5, 6, 7};
y // Query[{Max, Min, Median, Mean}]
(* {7, 1, 4, 4} *)
Query
has the nice feature that we can apply such lists of functions at deeper levels without too much additional thought:
ys = {{1, 2, 6}, {4, 5, 9}, {10, 20, 60}};
ys // Query[All, {Max, Min, Median, Mean}]
(* {{6, 1, 2, 3}, {9, 4, 5, 6}, {60, 10, 20, 30}} *)