Services & Resources / Wolfram Forums
MathGroup Archive
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Single-step evaluation in Mathematica

  • To: mathgroup at
  • Subject: [mg81289] Re: Single-step evaluation in Mathematica
  • From: Chris Chiasson <chris.chiasson at>
  • Date: Tue, 18 Sep 2007 05:53:19 -0400 (EDT)
  • References: <fclape$f7b$>

On Sep 17, 2:36 am, Szabolcs Horv=E1t <szhor... at> wrote:
> 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

It would be quite trivial to achieve single step evaluation if the
*Values of all the system variables were readable. However, they are

I recommend reading:

(or, in HTML)

Also, I would recommend these two posts for the held evaluation
properties of Block, With, Module, RuleCondition, $ConditionHold, and
the multi argument Function:


  • Prev by Date: Re: coupled map lattice problem
  • Next by Date: Linux V6: slow input
  • Previous by thread: Re: Single-step evaluation in Mathematica
  • Next by thread: piecewise functions from logical relationships (ie. solving with constraints)