Re: Display[ ] renewed?
- To: mathgroup at smc.vnet.net
- Subject: [mg90414] Re: Display[ ] renewed?
- From: Jens-Peer Kuska <kuska at informatik.uni-leipzig.de>
- Date: Tue, 8 Jul 2008 07:49:20 -0400 (EDT)
- Organization: Uni Leipzig
- References: <g4v303$if1$1@smc.vnet.net>
- Reply-to: kuska at informatik.uni-leipzig.de
Hi,
something like
SetAttributes[DoPrint, HoldAll]
DoPrint[body_, {i_, i1_, i2_}] := Module[{split},
split = Hold[body] /. CompoundExpression -> List;
split =
Flatten[split //. {Hold[{a_, b___}] :> {Hold[a], Hold[b]} ,
Hold[a_, b__] :> { Hold[a], Hold[b]}}];
split = split /. Hold[a_] :> Hold[Print[a]];
Do[
ReleaseHold[split /. i -> ii], {ii, i1, i2}
]
]
and
DoPrint[
Sin[x]; q; y = i^2, {i, 1, 3}]
Regards
Jens
AES wrote:
> I'd like to ask what if any ways are available in addition to Print[] to
> make a sequence of tested and functioning notebook Input cells produce
> exactly the same sequence of displayed Output cells when these Input
> cells are merged and wrapped into a Do[] loop?
>
> I'm supposing the straightforward answer is, ''Make the last expression
> in each of these individual Input cells be a 'Print[---];' statement
> that produces the desired output''; but I'm asking if there are other
> solutions?
>
> [If you want a more specific query, suppose I've coded and tested a set
> of compound expressions -- let's call them cell1, cell2, etc., since
> each one of them is located by itself in a separate notebook cell. Each
> such cell, when evaluated by itself, produces and displays in an output
> cell a graphic, or a Table, or some other visible output that I'm happy
> with. These cells may depend on a common global variable and some fixed
> global parameters, but are independent enough of each other that if they
> are arranged in any order in a notebook and executed, each cell produces
> the same output as in any other sequence. What further coding is
> required to merge these Input cells into a single compound expression
> and wrap this expression in a Do[ ] loop so that each execution of the
> loop produces the same set of *separate* Output cells as if the initial
> Input cells.]
>