Here is a block function:
ublock[UU_]:=Block[{tt},U[z_]:=UU[[1]];
tt=2 U[z]+3 U'[z]+U''[z]];
UU:={z^2,z,Sin[z]};
ublock[UU]
Where tt,U[z]
are temp variables, and I want to get the result:
2*z^2+6z+2
but the result is:
2z^2
why the results of U'[z]
and U''[z]
lost?
How to get the result I want?
Some evaluations help
UU := {z^2, z, Sin[z]};
ublock[UU_] := Evaluate@Block[{tt},
U[z_] := Evaluate@UU[[1]];
tt = 2 U[z] + 3 U'[z] + U''[z]];
ublock[UU]
2 + 6 z + 2 z^2
But for more flexibility
Clear[U, UU, ublock]
ublock[UU_] := Block[{tt},
U[z_] := 0;
DownValues[U] = ReplacePart[DownValues[U], {1, 2} -> UU[[1]]];
tt = 2 U[z] + 3 U'[z] + U''[z]]
UU := {z^2, z, Sin[z]}
ublock[UU]
2 + 6 z + 2 z^2