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>
- Re: Single-step evaluation in Mathematica