如何制作带有符号列表并将其作为字符串返回的toStr[list]?我想要a=1;toStr[{a}]给出{"a"}
更新03/02:Leo的配方有效,并且还制作了一个需要序列而不是列表的版本SetAttribute[toStr2,HoldAll];toStr2[a__]:=toStr[{a}]

最佳答案

您可以使用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]也可以正常工作。

关于wolfram-mathematica - 将符号转换为字符串而无需求值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5164975/

10-11 07:25