Any expression may be used as the head of an expression. Thus,
a = 37[1, 2, 3]
is perfectly valid (although strange). Here, a[[0]]
is the number 37. You may even mutate it with Set
(=
):
a[[0]]=33
a
(* 33[1, 2, 3] *)
Note, however, that vector operations will generally not recognize an object as a vector unless its head is List
. You may recover the tail as a list by:
List@@a
(* {1, 2, 3} *)