Пользовательские контроллеры для Manipulate [] в Mathematica

Я создал функциональный тест [], который также может быть символьным тестом, если потребуется, и я пытаюсь реализовать его в манипуляторе. 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 []? Заглянув в раздел настраиваемых контроллеров в расширенном руководстве по манипуляциям, я не вижу ссылок на эту проблему и не мог найти где-либо еще.

6
задан insect 13 January 2012 в 05:13
поделиться