Безопасно ли отключать Pattern :: patv?

По умолчанию 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] и продолжать, как мне заблагорассудится?


Мне известно о множестве различных, более подробных методов, которые могут выполнить одну и ту же задачу, и я не собираюсь анализировать их достоинства. Меня интересует только безопасность этого конкретного.

9
задан Mr.Wizard 4 December 2011 в 10:18
поделиться