警告 - 警告 - 我不知道我在做什麼
剛剛發現這個瀏覽幫助系統隨機。
從未使用RunThrough ...無論如何,似乎做你想做的。
Clear["Global`*"];
a := b;
c := 2 a + b;
mathcommand = StringReplace[First[$CommandLine], "MathKernel" -> "math"];
outputfile = "c:\\rtout";
RunThrough[mathcommand <> " -noprompt", Unevaluated[Put[Definition[c], "c:\\rtout"]]]
FilePrint[outputfile]
Clear[a, c];
<< "c:\\rtout"
DeleteFile[outputfile]
?c
出
c := 2*a + b
_______________________________
Global`c
c:=2 a+b
編輯。作品名單上有一點保留福
Clear["Global`*"];
(*Trick here *)
f[l_] := Definition @@ HoldPattern /@ [email protected];
SetAttributes[f, HoldFirst];
a := b;
c := 2 a + b;
d := 3 a + b;
mathcommand = StringReplace[First[$CommandLine], "MathKernel" -> "math"];
outputfile = "c:\\rtout";
RunThrough[mathcommand <> " -noprompt",Unevaluated[Put[Evaluate[[email protected]{c, d}], "c:\\rtout"]]]
(* test *)
FilePrint[outputfile]
Clear[a, c, d];
<< "c:\\rtout"
DeleteFile[outputfile]
?c
?d
這是一個聰明的魔法!我從不使用'Block []'......我試圖用'Put'構造類似於'truncatedSave'的東西,但失敗了,儘管使用了'HoldRest',對參數的評估過早。 – Simon 2010-11-04 07:27:46
@Simon:是的,儘管我花了很多時間試圖模塊化,塊化和與之間的區別,但我仍然覺得很困惑:) – Janus 2010-11-04 09:31:27
對我來說,就像探索一個無限的迷宮... – 2010-11-04 14:34:19