在许多可能的方法中,这里有一个或许晦涩而简洁的一行代码,接下来是解释:
Show[Plot[#, {x, ##2}] & @@@ list]
首先,#
是Slot的运算符形式,##
是SlotSequence的运算符形式,f @@@ expr
是Apply[f,expr,{1}]]
的中缀运算符,因此可以更详细地表达为:
Show[Apply[Plot[#, {x, ##2}] &, list, {1}]]
因此,对于您的list
的每个子列表,元素被作为参数传递给纯函数。在纯函数中,#是第一个参数(第一个子元素,例如函数3x
),而##2
是剩余的参数(从第二个参数开始作为Sequence
,例如Sequence[0, 4]
)。对于第一个元素,评估的命令将是Plot[3x, {x,0,4}]
。
如果以上内容过于晦涩难懂,您始终可以定义一个函数并使用Map
:
plotter[{func_, interval__}] := Plot[func, {x, interval}]
Show[plotter /@ list]
希望这有所帮助!
SlotSequences
,而这是非常好的利用它们的方式。 - rcollyerlist = {{2 x, 1, 5}, {2 x^2, 0, 4}}; Show[Plot[#, {x, ##2}, PlotRange -> All] & @@@ list]
- Tombart