Doesn't x__Integer mean that the allowed arguments for f are just the lists of integers? (The Mathematica Book says so on p. 273 sect. 2.3 .8).
Or, am I really forced to write
f[x_ /; VectorQ[x, IntegerQ]] := x[[2]]
or for in a generalizable form:
f[x_ /; VectorQ[x, (Head[#] == Integer)& ]] := x[[2]] ?
As it looks to me, it would be useful if the Documentation Center would contain a Tutorial which collects the usual idioms for argument specifications of functions including user-defined heads and default arguments.
PS: My system is Mathematica 11.1 under Windows 10. See the attached file umTest1.nb for experimentation.
Attachments: