Of the many possible ways to do this, here's a perhaps cryptic and terse one-liner, followed by explanation:
Show[Plot[#, {x, ##2}] & @@@ list]
First, #
is the operator form of Slot
and ##
is the operator form of SlotSequence
, and f @@@ expr
is the infix operator for Apply[f,expr,{1}]]
, so this could be more verbosely expressed as:
Show[Apply[Plot[#, {x, ##2}] &, list, {1}]]
Thus, for each sub-list of your list
, the elements are passed as arguments to the pure function. In the pure function, # is the first argument (first sub-element, e.g. the function, 3x
) and ##2
is the rest of the arguments (starting with the second one as a Sequence
, e.g. Sequence[0, 4]
). For the first element then, the command evaluated would be Plot[3x, {x,0,4}]
.
If the above is too cryptic, you could always define a function and use Map
:
plotter[{func_, interval__}] := Plot[func, {x, interval}]
Show[plotter /@ list]
Hope that helps!