Из многих возможных способов сделать это, возможно, загадочный и краткий однострочный, сопровождаемый объяснением:
Show[Plot[#, {x, ##2}] & @@@ list]
![Mathematica graphics](https://i.stack.imgur.com/9eFDc.png)
Сначала #
операторная форма 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]
Надеюсь, это поможет!