Re: Question on Unevaluated
- To: mathgroup at smc.vnet.net
- Subject: [mg117423] Re: Question on Unevaluated
- From: magma <maderri2 at gmail.com>
- Date: Fri, 18 Mar 2011 05:59:35 -0500 (EST)
- References: <ilsrj5$t58$1@smc.vnet.net>
> In[19]:= Clear[x];
> Module[{tried}, x := Block[{tried = True}, x + 1] /; ! TrueQ[tried]]
This kind of trick seems to me a bit problematic.
It is true that it works in this case:
In[45]:= x
Out[45]= 1 + x
and also works with
In[54]:= x + a
Out[54]= 1 + a + x
but if you just slightly change the input, it stops working:
In[55]:= x + 2
During evaluation of In[55]:= $IterationLimit::itlim: Iteration limit
of 4096 exceeded. >>
Out[55]= Hold[4097 + x]
Any suggestions why is that?