I'd like to display only the variable (indexed variable) name (in symbol form, not in string form) instead of its value in Mathematica. Say I have a variable foo[i] with i being the index, How do I get something like {foo[1], foo[2]} as output?

I have tried i = 1; HoldForm[foo[i]] but Mathematica seems to hold all evaluations, including replacing the index i with its value. HoldForm[foo[i]] /. i -> i also won't work.

There exists another thread in SE that connects with this question, but it doesn't seem to work either.

Display variable name instead of value

  • $\begingroup$ HoldForm[foo[i]] /. i -> 1 or HoldForm[foo[i]] /. i -> j will work. $\endgroup$
    – Jinxed
    Commented Mar 18, 2015 at 14:33
  • $\begingroup$ Also With[{i=1},HoldForm[foo[i]]] works. As does i=1;With[{i=i},HoldForm[foo[i]]]. $\endgroup$
    – celtschk
    Commented Mar 18, 2015 at 16:43
  • $\begingroup$ Related: "Elegant manipulation of the variables list." $\endgroup$ Commented Mar 19, 2015 at 12:14

1 Answer 1


I believe this is what you're seeking:

HoldForm[foo] /@ Range[2]

and if you want individual elements:

(HoldForm[foo] /@ Range[2])[[1]]


(HoldForm[foo] /@ Range[2])[[2]]
  • $\begingroup$ Thank you for you answer. Yes this is working, but what if I want to extract the elements in the list? HoldForm[foo] /@ {i}[[1]] won't work. $\endgroup$ Commented Mar 18, 2015 at 14:40
  • $\begingroup$ Well I also discovered HoldForm[foo]@i :) $\endgroup$ Commented Mar 18, 2015 at 14:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.