Re: How to work with In?

*To*: mathgroup at smc.vnet.net*Subject*: [mg113996] Re: How to work with In?*From*: kj <no.email at please.post>*Date*: Sat, 20 Nov 2010 06:12:49 -0500 (EST)*References*: <ic5opg$70l$1@smc.vnet.net>

In <ic5opg$70l$1 at smc.vnet.net> Oliver Ruebenkoenig <ruebenko at wolfram.com> writes: >On Fri, 19 Nov 2010, kj wrote: >> I want to create a list consisting of the (unevaluated) expressions >> that were entered in a particular subrange of the In array. I.e., >> what I want is (almost) something like this: >> >> Table[In[i], {i, 300, 375}] >> >> except that this won't work, because each In[i] will be evaluated. >> This also fails >> >> Table[Hold[In[i]], {i, 300, 375}] >> >> because now the i is not evaluated, so the result is a list of >> multiple copies of the expression Hold[In[i]]. >> >> How can I do what I'm trying to do? >I think this is your friend >Table[With[{i = i}, Hold[In[i]]], {i, 300, 375}] That's one cool trick! Thanks! Unfortunately, it doesn't solve this problem: In[31]:= Table[With[{i = i}, Hold[In[i]]], {i, 20, 30}] Out[31]= {Hold[In[20]], Hold[In[21]], Hold[In[22]], Hold[In[23]], Hold[In[24]], Hold[In[25]], Hold[In[26]], Hold[In[27]], Hold[In[28]], Hold[In[29]], Hold[In[30]]} I need each of In[20], In[21], ..., In[30] to be processed by the kernel exactly once before clamping the result with Hold. By the way, being able to limit the level of evaluation to a precise number of "passes", greater than zero, but not all the way to full evaluation, is something I find myself needing very often. ~kj