Manipulate
имеет атрибут HoldAll
.Вы можете заставить control
оценить и все работает нормально
control = {u, 1, 10};
Manipulate[x[u], Evaluate[control]]
Проблема в том, что переменная u
не локализована должным образом, поэтому, если вы уже установили, например, u=1
тогда Manipulate
вернет ошибку.
Возможно, будет лучше, если вы будете использовать соответствующие ограничивающие конструкции, такие как With
или DynamicModule
, в зависимости от того, что именно вы пытаетесь сделать.
Это может быть излишним, но это гарантирует, что u
является локальным и перемещает control
за пределы манипуляции:
DynamicModule[{u}, With[{control = {u, 1, 10}}, Manipulate[x[u], control]]]