免责声明:我是Mathematica的新手
我知道我可以使用Map在数据列表上映射函数,但有没有办法在函数列表中“映射”一个值?
例如说我有3个功能:
f2[x_]:=x^2
f3[x_]:=x^3
f4[x_]:=x^4
funcList={f2,f3,f4}
现在,如果我想创建一个新列表,我在这个列表上映射一个值来创建一个新列表?就像我要使用值二,我会得到:
MapValue[2,funcList]
{4,8,16}
答案 0 :(得分:3)
您可以使用Through
。
f2[x_] := x^2
f3[x_] := x^3
f4[x_] := x^4
funcList = {f2, f3, f4};
Through[funcList[2]]
{4,8,16}
答案 1 :(得分:2)
您可以编写一个调用另一个函数的函数:
call[g_] := g[2]
Map[call, funcList]
(* {4, 8, 16} *)
可以使用pure function语法简化:
#[2]& /@ funcList
(* ^~~~~ ^~
| short-form of Map
|
~~ same as the `call` above
*)