25
votes
Why is Unevaluated[#]& different from Unevaluated?
I thought that for any function f we could use "f" interchangeably with "f[#]&".
That ...
24
votes
Accepted
What's the difference between these 2 associations?
Preamble
The real problem here seems somewhat deeper than what the (mostly correct) observations in comments indicate. In Mathematica, a number of objects, which are so-called raw objects (including ...
18
votes
Accepted
Why is Unevaluated[#]& different from Unevaluated?
The two are not equivalent. Even if f lacks special attributes.
Assuming no special attributes are present, a function's arguments are always evaluated before the ...
18
votes
Accepted
Why does Unevaluated applied (@@) to a held expression not work?
The action of the symbol Unevaluated is due to a special rule within the evaluator that occurs at a very specific time during the evaluation process. ...
17
votes
Accepted
How to uncompress strings safely (without any evaluation)?
This is definitely a bug. Here's a slightly simpler workaround than those suggested in the comments:
Uncompress[str, HoldComplete] // InputForm
Generally ...
16
votes
Accepted
Pure functions are not functions?
A response to this comment:
I understand that there are workarounds. I am wondering whether I am misinterpreting the manual.
Yes. The use of the word "function" in the manual may be confusing ...
16
votes
Accepted
Easy printing of executable code
You could define a function similar to Echo with the difference that it won't evaluate its argument before printing.
...
16
votes
Why is Unevaluated[#]& different from Unevaluated?
The head Unevaluated is a symbol with the HoldAllComplete attribute. The head ...
16
votes
Accepted
Evaluated vs. unevaluated Association
Summary
The confusion we observe here is largely due to ambiguous use of the symbol Association as an expression head. On the one hand, ...
15
votes
Accepted
HoldPattern vs Unevaluated
HoldPattern is a persistent head that prevents evaluation of its argument(s) yet is transparent to pattern matching. Unevaluated...
14
votes
Accepted
What is the potential usage of ReplaceAllUnheld in Developer Utilities Package?
Thank you for bringing this function to my attention! It lets us use ReplaceAll without disturbing or even traversing held expressions. This is huge! I have ...
13
votes
Accepted
Defer, Hold, Unevaluated, Inactivate -- which one when?
The SO duplicate Preventing evaluation of Mathematica expressions
does a nice job of explaining the differences among and use-cases for Defer, ...
11
votes
Accepted
How to see a code preview (in Experimental`Explore[] or related GUI)
Quick fix is to use e.g. Inactivate and friends:
...

Kuba♦
- 136k
11
votes
Accepted
Why one needs two Unevaluated to show 1+1 correctly in TreeForm?
This issue is known and it is a defect of TreeForm like Leonid already said. Let me give an illustrative example that shows the same behavior. Let us assume you ...
11
votes
Accepted
Matching HoldPattern expressions
Clarification of HoldPattern usage:
HoldPattern[expr] is equivalent to expr for pattern ...

Kuba♦
- 136k
11
votes
Accepted
How to get a unevaluted expression from a compressed string?
You need to wrap the expression Unevaluated before passing it to Compress, which means defining your own function instead of ...
11
votes
Accepted
Confusion about HoldFirst attribute of Set
The problem is not related to Set in general but to how Set works with Part on a left hand ...

Kuba♦
- 136k
11
votes
Expanding a sum without evaluating it
may be
Sum[With[{i=i},HoldForm[i^2]],{i,1,5}]
But this uses a wrapper. I do not think there is a way without using Hold and ...
11
votes
Accepted
Perform localized, evaluation-leak free replacements
Here's a way making use of Block to cause f to be inert:
...
11
votes
Accepted
How to write a simple interpreter / DSL with Wolfram Language?
The current status of this answer
I intend to return back to this very exciting question with a better answer, when I have it, but for now there will be something here to get you started.
General ...
11
votes
Accepted
Getting terms and only evaluate specific parts of a series
times[{i_}] := i
times[{i__}] := Inactive[Times][i]
Sum[times@Table[2 i - 1, {i, n}]/times@Table[2 i, {i, n}], {n, 5}]
If you prefer ...
10
votes
Why is the first argument of the SetDelayed evaluated?
I will interpret the question "Why?" to be asking
What useful purpose does it serve that SetDelayed evaluates its first argument?
In the standard evaluation ...
10
votes
Accepted
How do I insert OwnValues inside a held expression without evaluating it?
ClearAll[a, b];
a := 1 + 1
b = Sqrt
Is this acceptable?
...

Kuba♦
- 136k
10
votes
Confusion about HoldFirst attribute of Set
Kuba's answer explains why the first form does not work, but it does not address why the second form does work. That has been discussed in other questions
DownValue assignment using Apply
Why is the ...
10
votes
Accepted
How to make Mathematica evaluate this integral
For integrals involving Gaussians, I've often found it to be more convenient to get integrals via the Expectation value of the ...
10
votes
Accepted
How to convert input expression to FullForm String
You just put Unevaluated in the wrong spot:
...
10
votes
Accepted
How can I check if a function remains unevaluated?
check if a function remains unevaluated.
Why not just check the head?
func = Log[3 x]^5*Sec[3 x];
result = Integrate[func, x]
...
10
votes
Accepted
Unwanted Hold from recursive function
The Problem
Your function definition does not have a "base case." When Mathematica attempts to evaluate f[5], it uses the function definition (called ...
10
votes
Accepted
Why can't I use Inactive[D] in NDSolve?
The coefficient you give for the diffusion operator is a scalar but you can give a matrix of coefficients. I think this is what you are looking for:
...
10
votes
Accepted
How to define a version of Table[] which localizes iteration variable by Module[]?
Here is one way to do this for arbitrary number of iterators:
...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
hold × 378evaluation × 165
replacement × 33
function-construction × 31
functions × 27
pattern-matching × 24
list-manipulation × 22
output-formatting × 22
expression-manipulation × 20
plotting × 17
bugs × 15
string-manipulation × 15
attributes × 15
associations × 14
assignment × 13
scoping × 12
symbols × 12
differential-equations × 10
calculus-and-analysis × 9
syntax × 9
formatting × 9
core-language × 9
manipulate × 8
dynamic × 8
variable-definitions × 7