Dynamic[x=7]; does not make x dynamic! But Dynamic[x=7;] makes x dynamic with initial value 7. The problem with the later is the presence of Null in the output. My question is: how can I assign a (big) value (or a huge list, etc.) to a dynamic variable AND suppress any possible output (including Null)?
Asked
Active
Viewed 488 times
1
m_goldberg
- 107,779
- 16
- 103
- 257
kornaros
- 1,047
- 5
- 14
2 Answers
3
Dynamic doesn't work the way you think it does. See this answer for a full explanation.
In short, Dynamic doesn't do anything until it is actually displayed on screen.
1
Dynamic is only updated if it is displayed. Dynamic[]; is never displayed so it is never updated. Dynamic[...;] returns a dynamic that always returns Null, but is never the less updated.
Here is an example that demonstrates the problem:
x = .5;
Dynamic[Print["will not print:", x]];
Dynamic[Print["Should print:", x];]
Slider@Dynamic@x
Ajasja
- 13,634
- 2
- 46
- 104
DynamicWrapper? – John Fultz Mar 05 '13 at 17:40Dynamic. There's no such thing as a dynamic variable. There's only stuff that shows as the dynamically updated "current" value of an expression, and in the process of calculating that current value, it might update other "non-dynamic" variables – Rojo Mar 05 '13 at 17:58