Consider the 3 following manually entered evaluations where a Set statement is brought to the Front-End by Dynamic:


Obviously the Set statement in Dynamic is evaluated only once, at the beginning. Despite remaining on the screen at all times and despite manual future alteration of t, t=0 does not seem to be evaluated again. According to documentation I would expect the Set statement to be evaluated each time t changes.

Why is this so? I failed to see the explanation in the neat answers Using Refresh[..] with TrackedSymbols! and advanced Dynamic documentation.

This is further surprising, considering that adding t; in the Dynamic expression, recovers systematic evaluation of t=0 when t is altered:


Later increment: following the suggestion by Kuba in the comments about using t[], here is a third case where t[0] apparently does not depend on t (like the first case) but actually updates this time.

enter image description here

Thank you for you help and keep on the good work.

New contributor
SteppingStone is a new contributor to this site. Take care in asking for clarification, commenting, and answering. Check out our Code of Conduct.
  • The statement t = 0 does not depend on the value of t. The statement t; t = 0 does, since t is evaluated. – Michael E2 yesterday
  • Ok, it is not sufficient that t formally (lexically) appears in the expression to be updated by Dynamic. I better understand the logics now, somehow clearer than the multipage documentation, thank you. – SteppingStone yesterday
  • Comments are not for extended discussion; this conversation has been moved to chat. – Kuba yesterday

Your Answer

SteppingStone is a new contributor. Be nice, and check out our Code of Conduct.

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.