Re: DynamicModule Pure Function
- To: mathgroup at smc.vnet.net
- Subject: [mg121801] Re: DynamicModule Pure Function
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Mon, 3 Oct 2011 04:21:21 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201110020637.CAA28048@smc.vnet.net>
- Reply-to: drmajorbob at yahoo.com
The default range of a slider is 0 to 1. In your example, BOTH sliders range from 0 on the left to 1 on the right. The first slider has value Dynamic@x, so changing x moves the slider, and moving the slider also changes x. The second slider generally has value 1 - x (the first argument of that Slider), so moving the first slider moves the second. The second argument of the second slider is a pure function whose argument (#) is the numerical value of the slider, as determined by where you drag the slider with the cursor. (When you're NOT dragging it, the pure function is not invoked, and # has no value.) When you drag the second slider, the pure function sets x equal to 1 - #, or 1 minus the value of the second slider. Changing x moves the first slider, so moving the second slider moves the first. Whichever slider you're moving, 1 - x is the mirror image of x, so the sliders are "inverse" to one another. Bobby On Sun, 02 Oct 2011 01:37:19 -0500, Don <donabc at comcast.net> wrote: > In the Wolfram tutorial "Introduction to Dynamic" > (tutorial/IntroductionToDynamic) > there is the following example approximately halfway into the tutorial: > > DynamicModule[{x = 0}, {Slider[Dynamic[x]], > Slider[Dynamic[1 - x, (x = 1 - #) &]]}] > > > The explanation that Wolfram gives for why this works (i.e. the second > Slider is the inverse function of the first Slider) is unintelligible to > me. Can anyone explain in plain, simple English (no jargon) what is > going on here? > > For example, when x = 0.25 the second slider has to be at position > 0.75. It can't update 1-x directly since > 1-x cannot be set to a value. Of course, this > is true, but it doesn't explain why the pure function is the solution. > > > If x = 0.25, this implies that the # is equal to 0.75 since x = 1 - #. > But, how did the system know that # = 0.75? Where did the 0.75 come > from? > > > To put it another way, I am use to the # being a placeholder in pure > functions that ranges over a > set of values. For example, in Select[list, # > 0 &], the # ranges over > all the elements of list. What is # in the pure function of the second > Dynamic ranging over and how does it come up with 0.75 as a value for #? > > Thank you in advance for any clear explanations you can give me. > -- DrMajorBob at yahoo.com
- References:
- DynamicModule Pure Function
- From: Don <donabc@comcast.net>
- DynamicModule Pure Function