[Date Index]
[Thread Index]
[Author Index]
Re: Re: What is the purpose of the Defer Command?
*To*: mathgroup at smc.vnet.net
*Subject*: [mg82196] Re: [mg82122] Re: What is the purpose of the Defer Command?
*From*: DrMajorBob <drmajorbob at bigfoot.com>
*Date*: Sun, 14 Oct 2007 06:17:04 -0400 (EDT)
*References*: <fe4uhp$155$1@smc.vnet.net> <fefhui$j6c$1@smc.vnet.net> <1721082.1192176923906.JavaMail.root@m35> <op.tz3l3cbhqu6oor@monster.gateway.2wire.net> <7189487.1192239221818.JavaMail.root@m35>
*Reply-to*: drmajorbob at bigfoot.com
> That is, I can integrate one of the output cells in your Defer example by
> adding "Evaluatable" to its properties.
That has nothing to do with Defer; you're talking about CellPrint, and I
see no advantage to CellPrint over Print. Evaluate the Help example, and
now you'll see not five integrals, but 10, and they won't even be in a
sensible order (1, 1, 2, 3, 4, 5, 2, 3, 4, 5 at my machine). Evaluate it
again and you have 15 output cells, and again they're in no useful order.
Using Print, you have 5 outputs no matter how many times you evaluate it,
and they're in the proper order.
And... changing the properties of a cell is more transparent for newbies
than using First to remove Defer or ReleaseHold to remove HoldForm, or
simply copy/paste from an earlier line? I don't think so.
I also see no reason to involve copy/paste in the use of Defer... no more
so than any other wrapper, anyway. First or Defer->Identity removes the
wrapper. Use Defer the first time the expression is formed (and save it),
and no copy/paste will be required.
I'm not sure Defer does anything HoldForm doesn't do... but I can type it
faster, and I can type First faster than I can type ReleaseHold.
Bobby
On Fri, 12 Oct 2007 15:48:43 -0500, Vincent N. Virgilio
<virgilio at ieee.org> wrote:
> Nice.
>
> However, I'll hazard more opinion.
>
> Your first example with HoldForm always requires ReleaseHold to integrate
> any of the expressions in the output cells. Your second example with
> Defer
> can be integrated differently, perhaps in a way more appropriate for a
> tutorial or help page, e.g. ". . . Perform the computation yourself
> before
> evaluating the following cells . . .".
>
> That is, I can integrate one of the output cells in your Defer example by
> adding "Evaluatable" to its properties. I cannot do so with your HoldForm
> example, which requires ReleaseHold. Both the Evaluatable property and
> ReleaseHold can be programmed into document/cell creation, but I think
> the
> Evaluatable property is more transparent. Someone new to Mathematica
> learning about, say, integrals, would probably be distracted by postfix
> ReleaseHolds. Moreover, those ReleaseHolds make document creation more
> complex (though, since this is software, anything is possible).
>
> Vince Virgilio
>
>
> On 10/12/07, DrMajorBob <drmajorbob at bigfoot.com> wrote:
>>
>> How about this?
>>
>> Function[{n},
>> Print[save[n] = HoldForm[Integrate[x^n Exp[-x], {x, 0, 1}]]]] /@
>> Range[5];
>>
>> That gives the same outputs as the Defer example and it allows, for
>> instance,
>>
>> save[3] // ReleaseHold
>>
>> 6 - 16/\[ExponentialE]
>>
>> We can use Defer almost the same way, however:
>>
>> Function[{n},
>> Print[save[n] = Defer[Integrate[x^n Exp[-x], {x, 0, 1}]]]] /@
>> Range[5];
>>
>> First@save[3]
>>
>> 6 - 16/\[ExponentialE]
>>
>> Bobby
>>
>> On Fri, 12 Oct 2007 02:04:49 -0500, Vince Virgilio <blueschi at gmail.com>
>> wrote:
>>
>> > On Oct 9, 5:34 am, "David Park" <djmp... at comcast.net> wrote:
>> >> Still, my question is: "What is the purpose of the Defer Command?"
>> >>
>> >> The only potential purpose that I can see is for didactic purposes,
>> to
>> >> show
>> >> preliminary expressions before they are automatically evaluated. But
>> the
>> >> only way to get Defer to evaluate is by copying and pasting and then
>> >> evaluating, by using Shift-Ctrl-L and then evaluating, or by
>> >> evaluating in
>> >> place. All of these operations leave no record of the steps taken.
>> That
>> >> goes
>> >> contrary to any didactic purpose.
>> >>
>> >> --
>> >> David Park
>> >> djmp... at comcast.nethttp://home.comcast.net/~djmpark/
>> >
>> > Have you noticed the example in the documentation (http://
>> > reference.wolfram.com/mathematica/ref/Defer.html) that uses Defer to
>> > create cells with unevaluated contents? That has didactic potential.
>> >
>> > Can that example be rewritten without Defer, with similar complexity?
>> >
>> > Vince Virgilio
>> >
>> >
>> >
>>
>>
>>
>> --
>> DrMajorBob at bigfoot.com
>>
--
DrMajorBob at bigfoot.com
Prev by Date:
**Re: Evaluation question**
Next by Date:
**Re: "dereference" variable**
Previous by thread:
**Re: Re: What is the purpose of the Defer Command?**
Next by thread:
**Mouse cursor properties**
| |