Ответ 1
Вы не можете сделать это с помощью синтаксиса оператора вашего собственного изобретения (например, @@&
). Mathematica просто не имеет возможности модифицировать грамматику языка во время выполнения.
Вы можете получить, по крайней мере, часть с пакетом Notation
, но вы должны использовать символ, который не имеет значения в Mathematica, и, возможно, большую часть пути с одним из операторы без встроенных значений, но большинство (если они есть) из них не связываются как операторы постфикса.
Здесь, например, я буду использовать пакет Notations
для определения символа \[Wolf]
как предположительно псевдо-постфиксного оператора вместо @@&
:
In[1]:= Needs["Notation`"]
In[2]:= Notation[x_ \[Wolf] \[DoubleLongLeftRightArrow] (x_ @@ # &)]
In[3]:= f=#2+#^2/#3& \[Wolf]
Out[3]= (#2+#1^2/#3&) \[Wolf]
In[4]:= f[{a,b,c}]
Out[4]= b+a^2/c
Я включу скриншот, так как это включает в себя обозначение:
Если этот подход может завершиться неудачно, то вы не можете установить приоритет оператора для произвольного символа, такого как \[Wolf]
. Вместо этого вы можете использовать один из бессмысленных операторов, с которыми я связан выше, но у них также есть фиксированный приоритет, который нельзя изменить.
Если вы нашли PrecedenceForm
в документации, вы можете получить краткую ложную надежду, но, как говорят документы, это только влияет на печать и не оценка.
НТН!