Вы можете использовать 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]
будет работать так же хорошо.