Single-step evaluation in Mathematica

*To*: mathgroup at smc.vnet.net*Subject*: [mg81235] Single-step evaluation in Mathematica*From*: Szabolcs Horvát <szhorvat at gmail.com>*Date*: Mon, 17 Sep 2007 03:32:27 -0400 (EDT)

I would like to have a function, hasOwnValue, that takes the name of a symbol as a string, and tells whether the symbol has an own-value. It should do this without evaluating the value of the symbol. Examples: abc := Print["side effect"] xyz =. In := hasOwnValue["abc"] (* "side effect" must not be printed *) Out = True In := hasOwnValue["xyz"] Out = False How can I achieve this? This is a practical problem that I ran into, but the general question is: What do you do when you feel the need for *single-step evaluation* in Mathematica? E.g. how can I manipulate/transform held expressions made up of symbols that have values? An artificial example: a = 1 Hold[{a,b,c}] How do I reverse the list inside Hold? I could map Hold to each element, reverse the list, hold the list again, and remove Hold from individual elements to get Hold[{c,b,a}], but this is very inconvenient. Szabolcs

**Follow-Ups**:**Re: Single-step evaluation in Mathematica***From:*Andrzej Kozlowski <akoz@mimuw.edu.pl>