How to apply the multiple composite functions to a list?
For a minimal change in your code, you can replace @
with Composition (@*)
#[ls] & /@ {Max@*Re, Min@*Im}
{2, -1}
Consider also Through
:
Through @ {Max @* Re, Min @* Im} @ ls
{2, -1}
Aside: Why your code gives {{1, 2}, {1, -1}}
:
Trace[#[ls] & /@ {Max@Re, Min@Im}] // Column
Notice that Max@Re
is replaced with Re
and Min@Im
is replaced with Im
in the very first step of evaluation.
Map[{Max[Re[#]], Min[Im[#]]} &, ls, {0}]
Gives
{2, -1}
From help on Map
Level 0 corresponds to the whole expression.