如何将值映射到 Mathematica 中的函数列表?

How to map a value over a list of functions in mathematica?

免责声明:我是 Mathematica 新手

我知道我可以使用 Map 将函数映射到数据列表,但是有没有办法 "Map" 将值映射到函数列表?

例如说我有 3 个函数:

f2[x_]:=x^2
f3[x_]:=x^3
f4[x_]:=x^4

funcList={f2,f3,f4}

现在,如果我想创建一个新列表,在该列表上映射一个值以创建一个新列表?就像我要使用值二一样,我会得到:

MapValue[2,funcList]
{4,8,16}

您可以编写一个调用另一个函数的函数:

call[g_] := g[2]

Map[call, funcList]

(* {4, 8, 16} *)

这可以使用 pure function 语法简化:

   #[2]& /@ funcList

(* ^~~~~ ^~ 
       |  short-form of Map
       |
       ~~ same as the `call` above 
 *)

您可以使用 Through.

f2[x_] := x^2
f3[x_] := x^3
f4[x_] := x^4

funcList = {f2, f3, f4};

Through[funcList[2]]

{4, 8, 16}