По умолчанию Mathematica выдает предупреждающее сообщение, если я использую одно и то же имя для обоих Шаблоны Blank
и BlankSequence
:
f[{x_, ___} | x__] := g[x]
Pattern::patv: Name x used for both fixed and variable length patterns. >> Pattern::patv: Name x used for both fixed and variable length patterns. >>
Тем не менее, функция работает так, как я хочу:
f[{1, 2, 3}]
f[1, 2, 3]
g[1]
g[1, 2, 3]
Следовательно, безопасно ли использовать Off [Pattern :: patv]
и продолжать, как мне заблагорассудится?
Мне известно о множестве различных, более подробных методов, которые могут выполнить одну и ту же задачу, и я не собираюсь анализировать их достоинства. Меня интересует только безопасность этого конкретного.