将符号转换为字符串而不进

时间:2011-03-02 08:16:03

标签: wolfram-mathematica

如何使toStr[list]获取符号列表并将其作为字符串返回?我希望a=1;toStr[{a}]提供{"a"}

更新03/02 :Leo的配方也有效,也是为了制作一个版本,它取一个序列而不是列表我SetAttribute[toStr2,HoldAll];toStr2[a__]:=toStr[{a}]

1 个答案:

答案 0 :(得分:7)

您可以使用HoldForm

a = 1; b = 2;ToString@HoldForm[{a, b}]

这会给{a, b}。要使其成为toStr函数,您需要设置属性,使其不评估参数:

ClearAll[toStr]; SetAttributes[toStr, {HoldAll, Listable}];
toStr[x_] := ToString@HoldForm[x];
a = 1; b = 2; toStr[{a, b}]

或者,您可以使用Unevaluated;在上面的代码toStr[x_] := ToString@Unevaluated[x]中也可以正常工作。