Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

4
  • $\begingroup$ Thank you very much; out of curiosity, could you explain what the Function @@ {....} did, as opposed to the normal function call, to make it work as expected? $\endgroup$ Commented Mar 20, 2018 at 3:30
  • $\begingroup$ @Tired_College_Student The list {x, ...} (= List[x, temp[[1]]}) is evaluated before the head List` is replaced by Function. So the body is not changed after Function is in place, but before. If the body is changed after, the parameter x is renamed x$. Manipulate reprocesses its code, rewriting its variables, such as num, by adding $$ to them (e.g. num$$) and so forth -- it's somewhat complicated, too much so for a comment. I think somehow this causes the x to become x$ when inside the Manipulate. $\endgroup$ Commented Mar 20, 2018 at 3:37
  • 1
    $\begingroup$ "I'm not sure why" - unless I missed your point, because of the standard renaming: mathematica.stackexchange.com/q/20766/5478 $\endgroup$ Commented Mar 20, 2018 at 6:53
  • $\begingroup$ @Kuba I guess I was tired. I didn't check Module and assumed it was Manipulate. The Q&A you linked mainly discusses Module[{x,..}, Function[x, Evaluate[..]]], or so it seems to me; but the renaming of x occurs whenever the Evaluate[..] contains any Module variables, whether there is a naming conflict or not. Nonetheless, this seems to be dupe. $\endgroup$ Commented Mar 20, 2018 at 11:46