Re: Length of a held expression
- To: mathgroup at smc.vnet.net
- Subject: [mg96567] Re: Length of a held expression
- From: Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com>
- Date: Mon, 16 Feb 2009 07:00:16 -0500 (EST)
- Organization: The Open University, Milton Keynes, UK
- References: <gn8jdj$7qa$1@smc.vnet.net>
In article <gn8jdj$7qa$1 at smc.vnet.net>, Nikolaus Rath <Nikolaus at rath.org> wrote: > How can I get the length of a list in a Hold[] expression? I.e. if > > b = Sequence[1,2]; > > then I want the length of {b,3} given as 2. But > > Length[{b,3}] > > gives me the length after splicing in b (which is 4), while Which is 3 actually. > Length[Hold[{b,3}]] > > gives me the length of the hold expression (which is 1). You should use *Unevaluated* rather than *Hold*. In[1]:= b = Sequence[1, 2]; Length[Unevaluated[{b, 3}]] Out[2]= 2 In[3]:= Length[Unevaluated[1 + 2 + 3]] Out[3]= 3 In[4]:= Length[Hold[1 + 2 + 3]] Out[4]= 1 Regards, --Jean-Marc