(Опоздал, но пусть уж будет.
)
Частные правила — это, грубо говоря, те правила, в которых шаблоны соответствуют меньшему количеству вещей. Т. е., например,
0 соответствует только одному значению,
_Integer — большему количеству, а
_ — вообще всем вещам. И потому если у вас есть определения
Код:
f[0] = 1
f[_Integer] = 2
f[_] = 3
, даже если они будут исполнены в другом порядке, Mathematica при вызове
f[что-нибудь] будет сначала проверять это
что-нибудь на соответствие
0; потом, если не подойдёт,
_Integer; потом
_.
Правда, сейчас я не знаю, как будут сравниваться на «частность» два несравнимых шаблона, которым всё же соответствует что-то общее.
но хотелось бы найти возможность сделать "без химии", при помощи одного объявления
Как по мне, это вредное стремление. Зачем такие ограничения?