Я создал функциональный тест [], который также может быть символьным тестом, если потребуется, и я пытаюсь реализовать его в манипуляторе. test [] выглядит так:
test[]:=Button["Label",Functionality[]];
Это вернет ошибку, если используется непосредственно в Manipulate [], но работает, если оно заключено в Dynamic или Evaluate.
Manipulate[content,test[]];
Manipulate :: vsform: Manipulate аргумент test [] не имеет правильной формы для спецификации переменной.
Manipulate[content,Dynamic[test[]]]
Это работает
Manipulate[content,Evaluate[test]]
Обратите внимание, что пока это работает, тест не является функцией
Manipulate[content,Evaluate[test[]]]
Это работает на моем Mac, но не на моем ПК на работе ...
Я думаю, что проблема как-то связана с Управляйте значением HoldAll, но не понимаю, почему Dynamic [] должен это исправить. Кроме того, Evaluate [] будет работать только в некоторых случаях.
Итак, зачем нужны Dynamic [] или Evaluate []? Заглянув в раздел настраиваемых контроллеров в расширенном руководстве по манипуляциям, я не вижу ссылок на эту проблему и не мог найти где-либо еще.